Có 3 kiểu xóa như thế này:Các bác giúp em viết macro xoá vùng lọc trong Excel với.
Em nghĩ mãi mà không tìm được cách nào cả. Em cũng dùng Recoder macro nhưng khi chạy với
dữ liệu khác nhau thì bị sai mất. Em có gửi kèm file mong các bác giúp nhé !
Sub Test1()
With ActiveSheet.AutoFilter.Range
Intersect(.Offset(1), .Cells).SpecialCells(12).ClearContents
.Parent.ShowAllData
End With
End Sub
Sub Test2()
With ActiveSheet.AutoFilter.Range
Intersect(.Offset(1), .Cells).SpecialCells(12).EntireRow.Delete
.Parent.ShowAllData
End With
End Sub
Sub Test3()
Dim TmpRng As Range
With ActiveSheet.AutoFilter.Range
Set TmpRng = Intersect(.Offset(1), .Cells).SpecialCells(12)
.Parent.ShowAllData
TmpRng.Delete 2
End With
End Sub
Đúng rồi, đó là giới hạn của SpecialCells ---> Với vùng lọc lớn thì SpecialCells "mất đường bay" luônEm dùng vào công việc của em thì thấy khôg được bác ạ. Nếu vùng chọn mà lớn thì nó không thực hiện được.
Vậy có giải pháp nào không bác ?
Sub DeleteFilterData()
With Sheet1.Range("A5").CurrentRegion
.AdvancedFilter 2, .Parent.Range("I1:J2"), Sheet2.Range("A1")
End With
End Sub
With ActiveSheet.AutoFilter.Range
Intersect(.Offset(1), .Cells).EntireRow.Delete
.Parent.ShowAllData
End With
Để có thể chạy được trên Excel 2007 mà không bị sự cố thì bạn phải đặc biệt chú ý thao tác AutoFilterĐúng vậy đó bác ạ, chạy trên excel 2007 lúc thì OK lúc thì nó xoá hết cả, e cũng không hiểu nổi.
Em nghĩ cách của bác cũng hay, nhưng tôi nay em sẽ nghĩ và ngay mai sẽ up lên cách mới bác xem thế nào nhé.
Rồi tiện thể hỏi luôn bác vài vấn đề nữa.