我有一张带有列的Excel表格:
Name - Surname - Date - Amount - Ticker
日期的格式为dd / mm / yyyy,而 Ticker 则为0或1。 我想删除日期在01/01/2000之后的所有行或者自动收报机为0。
我设法记录了一个宏,我在那里过滤和删除过滤的行,但速度很慢。您是否知道如何通过VBA以清晰的方式删除它?
由于
答案 0 :(得分:0)
尽管我知道逐行循环可能很慢,但我已经成功使用了以下方法并且速度不是太慢,但在此期间可以随意提出更好的方法来完成手头的任务,此代码将按您的要求执行,而无需过滤任何内容:
Sub foo()
LastRow = Sheet1.Cells(Sheet1.Rows.Count, 5).End(xlUp).Row 'change sheet1 to your sheet if different
For RowCounter = LastRow To 2 Step -1 'loop from second row to the end
If Sheet1.Cells(RowCounter, 5).Value = 0 Or Sheet1.Cells(RowCounter, 3).Value > "01/01/2000" Then 'check if column 5 equals 0 or column 3 equals 01/01/2000 then
Sheet1.Rows(RowCounter).EntireRow.Delete 'delete that column
End If
Next RowCounter 'next row
End Sub
答案 1 :(得分:0)
这应该做你想要的,familia。如果您需要更多帮助,请告诉我
Sub testy()
Dim ayy As Long, ayooo As Long
Dim lmao As Range
ayy = Cells(Rows.Count, "A").End(xlUp).Row
For ayooo = ayy To 2 Step -1
If (Cells(ayooo, 3).Value > 36526) Or (Cells(ayooo, 5).Value = 0) Then Cells(ayooo, 1).EntireRow.Delete
Next ayooo
End Sub