letuananh1007
Thành viên mới

- Tham gia
- 13/12/14
- Bài viết
- 2
- Được thích
- 1
e có file như sau: ai có thể giúp e lọc dữ liệu cột G, H, I ra như sheet data2 không. Trong ba cột đó cứ dòng nào có số 2 thì coppy nguyên dòng đó sang sheet khác
e dùng code này mà chỉ được 1 cột thôi ạ
Sub Highlight_data()
Dim i As Worksheet
Dim a As Variant
Dim b As Variant
With ThisWorkbook.Sheets("Config")
If .Range("A" & Rows.Count).End(3).Row > 2 Then
b = .Range("A2:A" & .Range("A" & Rows.Count).End(3).Row)
ElseIf .Range("A" & Rows.Count).End(3).Row = 2 Then
b = Array(.[A2].Value)
Else
Exit Sub
End If
End With
Set i = ThisWorkbook.Sheets("Data")
For Each a In b
Sheets.Add.Name = "Report_" & a
With i
.AutoFilterMode = False
.Range("A:N").AutoFilter
.Range("A:N").AutoFilter Field:=12, Criteria1:=a
With .AutoFilter.Range
.Offset(0).Resize(.Rows.Count, 14).SpecialCells(xlCellTypeVisible).Copy
End With
.AutoFilterMode = False
End With
With ThisWorkbook.Sheets("Report_" & a)
.[A1].PasteSpecial xlPasteValues
.Columns("A:O").EntireColumn.AutoFit
End With
Next
Set i = Nothing
End Sub
e dùng code này mà chỉ được 1 cột thôi ạ
Sub Highlight_data()
Dim i As Worksheet
Dim a As Variant
Dim b As Variant
With ThisWorkbook.Sheets("Config")
If .Range("A" & Rows.Count).End(3).Row > 2 Then
b = .Range("A2:A" & .Range("A" & Rows.Count).End(3).Row)
ElseIf .Range("A" & Rows.Count).End(3).Row = 2 Then
b = Array(.[A2].Value)
Else
Exit Sub
End If
End With
Set i = ThisWorkbook.Sheets("Data")
For Each a In b
Sheets.Add.Name = "Report_" & a
With i
.AutoFilterMode = False
.Range("A:N").AutoFilter
.Range("A:N").AutoFilter Field:=12, Criteria1:=a
With .AutoFilter.Range
.Offset(0).Resize(.Rows.Count, 14).SpecialCells(xlCellTypeVisible).Copy
End With
.AutoFilterMode = False
End With
With ThisWorkbook.Sheets("Report_" & a)
.[A1].PasteSpecial xlPasteValues
.Columns("A:O").EntireColumn.AutoFit
End With
Next
Set i = Nothing
End Sub