Bạn biết về code VBA không vì bài của bạn dùng mảng cơ bản cũng được.Nếu biết mình hướng dẫn.Chào các anh chị,
Em có 1 file như này nhờ anh chị giúp đỡ,
Dữ liệu từ sheet DANHSACH sẽ được xuất sang sheet THONGKE theo điều kiện ở ô G3. em có làm kết quả mẫu. cảm ơn anh chị đã hỗ trợ em ạ.
dạ, anh hướng dẫn code cho em với, em chưa có viết được code. cảm ơn anhBạn biết về code VBA không vì bài của bạn dùng mảng cơ bản cũng được.Nếu biết mình hướng dẫn.
Duyệt dòng 2 cột E về phía phải. Ô nào = G3 sheet THONGKE thì ghi nhận cột (1)dạ, anh hướng dẫn code cho em với, em chưa có viết được code. cảm ơn anh
anh có thể code giúp em được không ạ. cảm ơn anhDuyệt dòng 2 cột E về phía phải. Ô nào = G3 sheet THONGKE thì ghi nhận cột (1)
Vòng lặp i=1 to dòng cuối step 10
for thêm lần nữa ii = i to i +9
tại cột vừa ghi nhận được (1) <> trống thì ghi nhận kết quả.
Thử code sau nhé chạy trong sự kiện của sheet thongke.Chào các anh chị,
Em có 1 file như này nhờ anh chị giúp đỡ,
Dữ liệu từ sheet DANHSACH sẽ được xuất sang sheet THONGKE theo điều kiện ở ô G3. em có làm kết quả mẫu. cảm ơn anh chị đã hỗ trợ em ạ.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, lr As Long, arr, kq, a As Long, so As Long
If Target.Address(0, 0) = "G3" Then
With Sheets("Danhsach")
lr = .Range("A" & Rows.Count).End(xlUp).Row + 20
arr = .Range("A1:K" & lr).Value
End With
For i = 5 To UBound(arr, 2)
If arr(1, i) = Target.Value Then
so = i
Exit For
End If
Next i
If so = 0 Then MsgBox "khong tim thay": Exit Sub
ReDim kq(1 To UBound(arr), 1 To 4)
For i = 2 To UBound(arr)
If Len(arr(i, so)) > 0 Then
a = a + 1
kq(a, 1) = arr(i, 2)
kq(a, 2) = arr(i, 3)
kq(a, 3) = arr(i, 4)
kq(a, 4) = arr(i, so)
End If
Next i
With Sheets("Thongke")
lr = .Range("D" & Rows.Count).End(xlUp).Row
If lr > 3 Then .Range("A4:D" & lr).ClearContents
If a Then .Range("A4:D4").Resize(a).Value = kq
End With
End If
End Sub
Cảm ơn anh đã hỗ trợ em ạ.Thử code sau nhé chạy trong sự kiện của sheet thongke.
Mã:Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long, lr As Long, arr, kq, a As Long, so As Long If Target.Address(0, 0) = "G3" Then With Sheets("Danhsach") lr = .Range("A" & Rows.Count).End(xlUp).Row + 20 arr = .Range("A1:K" & lr).Value End With For i = 5 To UBound(arr, 2) If arr(1, i) = Target.Value Then so = i Exit For End If Next i If so = 0 Then MsgBox "khong tim thay": Exit Sub ReDim kq(1 To UBound(arr), 1 To 4) For i = 2 To UBound(arr) If Len(arr(i, so)) > 0 Then a = a + 1 kq(a, 1) = arr(i, 2) kq(a, 2) = arr(i, 3) kq(a, 3) = arr(i, 4) kq(a, 4) = arr(i, so) End If Next i With Sheets("Thongke") lr = .Range("D" & Rows.Count).End(xlUp).Row If lr > 3 Then .Range("A4:D" & lr).ClearContents If a Then .Range("A4:D4").Resize(a).Value = kq End With End If End Sub
Đầu tiên là Anh hướng dẫn code, khi hướng dẫn rồi thì lại Anh code giúp em với. Vậy là công cốc phần hướng dẫn nhỉ.Duyệt dòng 2 cột E về phía phải. Ô nào = G3 sheet THONGKE thì ghi nhận cột (1)
Vòng lặp i=1 to dòng cuối step 10
for thêm lần nữa ii = i to i +9
tại cột vừa ghi nhận được (1) <> trống thì ghi nhận kết quả.
Hihi. Người ta không muốn học thì biết làm thế nào. Họ muốn bấm 1 phát thì đành chờ thành viên khác rảnh vậy anh ạĐầu tiên là Anh hướng dẫn code, khi hướng dẫn rồi thì lại Anh code giúp em với. Vậy là công cốc phần hướng dẫn nhỉ.