Mình có một bài nhờ các bạn viết dùm code lọc
Cám ơn các bạn nhiều!
Sub GPE()
Dim Code As Range, Clls As Range
Set Code = Sheet1.[b3].Resize(Sheet1.[b3].End(xlDown).Row - 2)
Application.ScreenUpdating = False
For Each Clls In Code
If (Len(Clls) = 1) And (Clls.Offset(, 3) = "") And (Clls.Offset(, 4) = "") Then
Clls.EntireRow.Hidden = True
End If
Next
With Sheet2.[a2].End(xlDown)
Code.Offset(, -1).Resize(, 6).SpecialCells(12).Copy .Offset(1)
End With
Code.EntireRow.Hidden = False
Application.ScreenUpdating = True
End Sub
Sao boyxin không dùng AutoFilter nhỉ?bạn kiểm tra lại kết quả nhé
Sao boyxin không dùng AutoFilter nhỉ?
Cữ nghĩ là loại bỏ dòng Blank ở cột E, F nhưng giữ lại dòng Total (giống như mẫu có sẵn bên sheet2)NHờ các bạn tạo một code loc
Lọc từ sheet1 theo cột A (loại bỏ dòng trống)
xóa dữ liệu cột E,F (không xóa dòng total)
Cám ơn các bạn nhiều!
Cám ơn anh rất nhiều!Cũng nghĩ tới AutoFilter + NonBlanks nhưng mắc chỗ giữ lại dòng có ToTal dù cho cột E, F là Blank Không muốn dùng cột phụ nên nhất thời chưa nghĩ ra điều kiện nên đành dùng tạm
Cám ơn anh rất nhiều!
Em thử code của anh thì rất tốt, chỉ có điều là code vẫn chưa xóa được dữ liệu cột E,F
Anh có thể giúp tiếp em tiếp không, xin nói thêm là những dòng total đó chỉ có hàm sum theo vùng thôi. vì bảng đó là bảng cố định không thay đổi dòng và cột ,Anh có thể dùng cách nào đó xóa hết, rồi điền lại hàm sum vào các ô cố định đó là OK!
Một lần nữa cám ơn các anh nhiều!
(TRong file em quên chưa tạo hàm sum cho các dòng total ở cột F).
Sub GPE()
Application.ScreenUpdating = False
With Sheet1.[a2].CurrentRegion.Offset(1)
.AutoFilter Field:=1, Criteria1:="<>"
.Offset(1).SpecialCells(12).Copy Sheet2.[a2].End(xlDown).Offset(1)
.AutoFilter
.Offset(1, 4).Resize(, 2).SpecialCells(2, 23).ClearContents
End With
Application.ScreenUpdating = True
End Sub
Không xoá ô có công thức tại Cột E, FLọc từ sheet1 theo cột A (loại bỏ dòng trống)
xóa dữ liệu cột E,F (không xóa dòng total)
Cám ơn anh đã vất vả giúp em!Mình không hiểu ý bạn nói đến xoá dữ liệu cột E, F là sao? Có phải là sau khi lọc sang sheet2 thì xoá dữ liệu tại cột E, F ở sheet1 nhưng dòng Total vẫn giữ nguyên công thức SUM. Thử dùng code này xem còn vấn đề gì thì trao đổi tiếp
Hiện tại: Trong code mình làm như yêu cầu của bạn ghi trong sheet1Không xoá ô có công thức tại Cột E, FPHP:Sub GPE() Application.ScreenUpdating = False With Sheet1.[a2].CurrentRegion.Offset(1) .AutoFilter Field:=1, Criteria1:="<>" .Offset(1).SpecialCells(12).Copy Sheet2.[a2].End(xlDown).Offset(1) .AutoFilter .Offset(1, 4).Resize(, 2).SpecialCells(2, 23).ClearContents End With Application.ScreenUpdating = True End Sub
.Offset(1).SpecialCells(12).Copy Sheet2.[a2].End(xlDown).Offset(1)
.Offset(1, 4).Resize(, 2).SpecialCells(2, 23).ClearContents
Mình nghĩ bạn dư sức sửa mấy chỗ lỗi này màCám ơn anh đã vất vả giúp em!
Em chạy code thấy rất tốt (Anh đã hiểu được ý của em), nhưng có một số vấn đề phát sinh.
Thứ nhất: nếu xóa bỏ hết dữ liệu ở sheet2 (chỉ để lại dòng tiêu đề ) chạy code báo lỗi ở đoạn
Thứ hai: trong trường hợp nhỡ bấm nhầm (chạy code) thêm lần 2 Khi không có số liệu nào thì báo lỗi ở:PHP:.Offset(1).SpecialCells(12).Copy Sheet2.[a2].End(xlDown).Offset(1)
Anh cố gắng giúp em thêm nhé!PHP:.Offset(1, 4).Resize(, 2).SpecialCells(2, 23).ClearContents
Cám ơn anh!
.Offset(1).SpecialCells(12).Copy Sheet2.[a2].End(xlDown).Offset(1)
.Offset(1).SpecialCells(12).Copy Sheet2.[a65535].End(xlup).Offset(1)
.Offset(1, 4).Resize(, 2).SpecialCells(2, 23).ClearContents
On Error Resume Next
Sub GPE()
Application.ScreenUpdating = False
With Sheet1.[a2].CurrentRegion.Offset(1)
On Error Resume Next
.AutoFilter Field:=1, Criteria1:="<>"
.Offset(1).SpecialCells(12).Copy Sheet2.[a65535].End(xlUp).Offset(1)
.AutoFilter
.Offset(1, 4).Resize(, 2).SpecialCells(2, 23).ClearContents
End With
Application.ScreenUpdating = True
End Sub
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2