我制定了一个函数和一个过程来帮助我找到最后一行,然后删除过滤后的条件。如果没有标准,则单独保留数据。但是,该过程会根据条件筛选和删除数据,但如果没有标准而不是单独留行,则会删除我的第一行。
这是我的功能
Code:
Public Function GETLASTROW(ByVal rngToCheck As Range) As Long
Dim rngLast As Range
Set rngLast = rngToCheck.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If rngLast Is Nothing Then
GETLASTROW = rngToCheck.Row
Else
GETLASTROW = rngLast.Row
End If
End Function
这是我的程序
代码:
Sub last_row()
Dim lngLastRow As Long
Application.ScreenUpdating = False
With Sheets("New Leaves Report")
lngLastRow = GETLASTROW(.Cells)
If lngLastRow > 1 Then
'we don't want to delete our header row
With .Range("B2:B" & lngLastRow)
.AutoFilter Field:=1, Criteria1:="#N/A"
.EntireRow.delete
End With
End If
End With
Application.ScreenUpdating = True
End Sub
即使没有要删除的条件,我也无法弄清楚为什么要删除行B2
。任何帮助表示赞赏。