删除标准的VBA是删除我的第一行而不管标准

时间:2018-06-11 20:02:04

标签: vba excel-vba excel

我制定了一个函数和一个过程来帮助我找到最后一行,然后删除过滤后的条件。如果没有标准,则单独保留数据。但是,该过程会根据条件筛选和删除数据,但如果没有标准而不是单独留行,则会删除我的第一行。

这是我的功能

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。任何帮助表示赞赏。

0 个答案:

没有答案