Dùng auto Fiter với thông số: is greater than 2, và chọn hết các hàng hiện lên xóa, Ctr -Xin hỏi : Muốn xóa hàng Khi Điều kiện :
Ô nào trong B1 đến B20 >2 thì xóa hàng đó
XIn cảm ơn.
Sub Xoa()
Dim MyRng As Range, iR As Long
Set MyRng = [b1:b20]
For iR = 20 To 1 Step -1
If Range("B" & iR).Value > 2 Then
Range("B" & iR).EntireRow.Delete
End If
Next
End Sub
Xin hỏi : Muốn xóa hàng Khi Điều kiện :
Ô nào trong B1 đến B20 >2 thì xóa hàng đó
XIn cảm ơn.
For k = 1 To 65536 Step 1
If Range("B" & k).Value > 2 Then
Range("B" & k).EntireRow.Delete
End If
Next
Bạn test thử code trên, một điều khi xóa dòng là phải cho for từ cuối lên đấu.Xóa hàng khi Ô B >2
PHP:For k = 1 To 65536 Step 1 If Range("B" & k).Value > 2 Then Range("B" & k).EntireRow.Delete End If Next
Xóa hàng khi Ô B >2
PHP:For k = 1 To 65536 Step 1 If Range("B" & k).Value > 2 Then Range("B" & k).EntireRow.Delete End If Next
Mà sẽ có nhiều ô mà vòng lặp For...Next sẽ bỏ qua! Vì hàng dưới sẽ bị đôn lên hàng trên và biến K thì không quay lai được.Range("B" & k).EntireRow.Delete
Sub XoaDongCoDK()
Dim iK As Long, iZ As Long
iZ = ActiveSheet.[B65536].End(xlUp).Row
For iK = 1 To iZ
With ActiveSheet.Cells(iK, 2)
If .Value > 2 Then .Value = ""
End With
Next iK
ActiveSheet.[B:B].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Sub XoaDongCoDK()
Dim iK As Long, iZ As Long
iZ = ActiveSheet.[B65536].End(xlUp).Row
For iK = iZ To 1 Step -1
With ActiveSheet.Cells(iK, 2)
If .Value > 2 Then .EntireRow.Delete
End With
Next iK
End Sub
For k = 1 To 65536 Step 1
If Range("B" & k).Value > 2 Then
Range("B" & k).EntireRow.Delete
k = k - 1
End If
Next
Oh... đương nhiên là vậy rồi!A nói khó thuyết phục quá?
Chắc chắn không khác nhau nhiêu quan trọng là chương trình viết thế nào thôi
Vì sao lại nhanh hơn, a? giải thích 1 chút cho em mở tầm mắt?
Dể mà... Thêm đoạnNhưng hàm đó còn bị 1 lỗi, nếu AdvanFilter không có dữ liệu >2 thì bị báo lỗi "hay làm 2 lần cũng bị lỗi ..... Vì không còn dữ liệu để xóa".
Vậy thêm hàm gì để khắc phục lỗi đó.
Vào đầu đoạn codeOn Error Resume Next