Sử dụng SpecialCells để chỉ xóa các hàng hiển thị sau khi tự động lọc:
ActiveSheet.Range("$A$1:$I$" & lines).SpecialCells _ (xlCellTypeVisible).EntireRow.DeleteNếu bạn có một hàng tiêu đề trong phạm vi của mình mà bạn không muốn xóa, hãy thêm một phần bù vào phạm vi để loại trừ nó:
ActiveSheet.Range("$A$1:$I$" & lines).Offset(1, 0).SpecialCells _ (xlCellTypeVisible).EntireRow.DeleteThay thế cho việc sử dụng OLX hoặc cung cấp địa chỉ phạm vi rõ ràng, thuộc tính AutoFilter.Range cũng có thể chỉ định phạm vi bị ảnh hưởng.
ActiveSheet.AutoFilter.Range.Offset(1,0).Rows.SpecialCells(xlCellTypeVisible).Delete(xlShiftUp)Như được sử dụng ở đây, Offset khiến hàng đầu tiên sau phạm vi AutoFilter cũng bị xóa. Để tránh điều đó, tôi sẽ thử sử dụng .Resize () sau. Offerset ().