Cần giúp đỡ về trích xuất dữ liệu với nhiều điều kiện. (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

cq461186neu

Thành viên mới
Tham gia
5/5/09
Bài viết
1
Được thích
0
Kính chào các anh chị!
Hiện tại em có một file tổng hợp dữ liệu và muốn lọc lấy dữ liệu theo nhiều điều kiện một cách tự động từ sheet tổng hợp sang một sheet mới.
Em đã tìm hiểu và tập viết một code bằng VBA để thực hiện nhưng đến đoạn
Union(.Offset(1, 0).Resize(, 2), .Offset(1, 3).Resize(, 4), .Offset(1, 10).Resize(, 1)).SpecialCells(12).Copy
Sh2.Range("A11").PasteSpecial 3
trong code thì không biết phải tiếp tục như thế nào.
Mã:
Sub LocDuLieu()
  Dim Sh1 As Worksheet, Sh2 As Worksheet
  On Error Resume Next
  Set Sh1 = Sheets("Bang tap hop CF phat sinh"): Set Sh2 = Sheets("Loc chi tiet")
  Application.ScreenUpdating = False
  Sh2.Range("D11:H65536").ClearContents
  With Sh1.Range(Sh1.[H17], Sh1.[AC65536].End(xlUp))
    .AutoFilter 3, IIf(Sh2.[C4] = "", "<>", Sh2.[C4])
    .AutoFilter 14, IIf(Sh2.[C5] = "", "<>", Sh2.[C5])
    .AutoFilter 15, IIf(Sh2.[C6] = "", "<>", Sh2.[C6])
    .AutoFilter 20, IIf(Sh2.[C7] = "", "<>", Sh2.[C7])
    Union(.Offset(1, 0).Resize(, 2), .Offset(1, 3).Resize(, 4), .Offset(1, 10).Resize(, 1)).SpecialCells(12).Copy
    Sh2.Range("A11").PasteSpecial 3
    .AutoFilter
  End With
  ActiveCell.Select
  With Sh2.Range("A10").CurrentRegion
    If .Rows.Count > 1 Then
      .Resize(, 1).SpecialCells(2, 1).Value = Evaluate("ROW(R:R)")
      .Offset(.Rows.Count)(1, 1) = "T" & ChrW(7892) & "NG C" & ChrW(7896) & "NG"
      .Offset(.Rows.Count)(1, 5) = Evaluate("Sum(" & .Offset(, 4).Resize(, 1).Address & ")")
      .Offset(.Rows.Count)(1, 6) = Evaluate("Sum(" & .Offset(, 5).Resize(, 1).Address & ")")
    End If
  End With
  Application.ScreenUpdating = True
  MsgBox "Hoàn thành", vbInformation, "Thông báo"
End Sub
Anh chị có thể giúp em hoàn chỉnh code trên không ạ!
Cảm ơn anh chị đã quan tâm!
 

File đính kèm

Web KT

Bài viết mới nhất

Back
Top Bottom