Truy vấn và cập nhật dữ liệu mảng giữa 2 sheet

Liên hệ QC

hoanhnnc

Thành viên chính thức
Tham gia
13/3/08
Bài viết
58
Được thích
0
Kính Chào các Anh, Chi, Em diễn đàn,

Em có 2 sheet: Time và Data.

Mong muốn Anh, chi, em giúp làm sao truy vấn theo mã nhân viên gọi dữ liệu từ ngày 1-31 8 dòng loại giờ hiển thị ra Sheet time xong rồi bấm nhập lại data thì điền qua sheet data.

Em đã làm được 1 loại còn mảng con lại không rành mong anh chị giúp với ạ.

Do sửa dùng lệnh crtl+F lâu quá nên muốn quản lý theo mã truy suất cho nhanh. Mong ACE giúp đỡ

Xin cảm ơn.
 

File đính kèm

  • Giờ công.xlsm
    75.4 KB · Đọc: 8
Kính Chào các Anh, Chi, Em diễn đàn,

Em có 2 sheet: Time và Data.

Mong muốn Anh, chi, em giúp làm sao truy vấn theo mã nhân viên gọi dữ liệu từ ngày 1-31 8 dòng loại giờ hiển thị ra Sheet time xong rồi bấm nhập lại data thì điền qua sheet data.

Em đã làm được 1 loại còn mảng con lại không rành mong anh chị giúp với ạ.

Do sửa dùng lệnh crtl+F lâu quá nên muốn quản lý theo mã truy suất cho nhanh. Mong ACE giúp đỡ

Xin cảm ơn.
Thử 2 code này xem.
Mã:
Option Explicit
Private sodong As Long
Sub abc()
   Dim i As Long, lr As Long, arr, kq(1 To 31, 1 To 8), dk As String, j As Integer, k As Integer
   sodong = 0
   With Sheets("time")
        dk = .Range("A1").Value
   End With
   With Sheets("Data")
       lr = .Range("D" & Rows.Count).End(xlUp).Row
       arr = .Range("B4:AI" & lr).Value
       For i = 1 To UBound(arr)
           If arr(i, 1) = dk Then
              sodong = i + 3
              For j = 1 To 8
                  For k = 1 To 31
                       kq(k, j) = arr(i + j - 1, k + 3)
                  Next k
              Next j
              Exit For
           End If
      Next i
  End With
  With Sheets("time")
       .Range("B4:I34").Value = kq
  End With
End Sub
Sub cba()
    Dim i As Long, arr, kq(1 To 8, 1 To 31), j As Integer
    If sodong = 0 Then MsgBox "KK": Exit Sub
    With Sheets("time")
         arr = .Range("B4:I34").Value
         For i = 1 To 31
             For j = 1 To 8
                 kq(j, i) = arr(i, j)
             Next j
         Next i
   End With
   With Sheets("Data")
        .Range("E" & sodong).Resize(8, 31).Value = kq
   End With
End Sub
 
Upvote 0
Thử 2 code này xem.
Mã:
Option Explicit
Private sodong As Long
Sub abc()
   Dim i As Long, lr As Long, arr, kq(1 To 31, 1 To 8), dk As String, j As Integer, k As Integer
   sodong = 0
   With Sheets("time")
        dk = .Range("A1").Value
   End With
   With Sheets("Data")
       lr = .Range("D" & Rows.Count).End(xlUp).Row
       arr = .Range("B4:AI" & lr).Value
       For i = 1 To UBound(arr)
           If arr(i, 1) = dk Then
              sodong = i + 3
              For j = 1 To 8
                  For k = 1 To 31
                       kq(k, j) = arr(i + j - 1, k + 3)
                  Next k
              Next j
              Exit For
           End If
      Next i
  End With
  With Sheets("time")
       .Range("B4:I34").Value = kq
  End With
End Sub
Sub cba()
    Dim i As Long, arr, kq(1 To 8, 1 To 31), j As Integer
    If sodong = 0 Then MsgBox "KK": Exit Sub
    With Sheets("time")
         arr = .Range("B4:I34").Value
         For i = 1 To 31
             For j = 1 To 8
                 kq(j, i) = arr(i, j)
             Next j
         Next i
   End With
   With Sheets("Data")
        .Range("E" & sodong).Resize(8, 31).Value = kq
   End With
End Sub
Test code chạy rất mượt. Cảm ơn bạn nhiều
 
Upvote 0
Web KT
Back
Top Bottom