VBA中的自动筛选不返回数据时该怎么办?

lak*_*esh 2 excel vba autofilter

我试图过滤一系列值,并根据我的标准,有时我可能没有符合我标准的数据。在那种情况下,我不想从过滤的数据中复制任何数据。如果有过滤数据,那么我想复制它。

这是我的代码:

With Workbooks(KGRReport).Worksheets(spreadSheetName).Range("A1:I" & lastrowinSpreadSheet)
    .AutoFilter Field:=3, Criteria1:=LimitCriteria, Operator:=xlFilterValues 'Do the filtering for Limit
     .AutoFilter Field:=9, Criteria1:=UtilizationCriteria, Operator:=xlFilterValues 'Do the filtering for Bank/NonBank
End With

'Clear the template
 Workbooks(mainwb).Worksheets("Template").Activate
 Workbooks(mainwb).Worksheets("Template").Rows(7 & ":" & Rows.Count).Delete

 'Copy the filtered data
 Workbooks(KGRReport).Activate
 Set myRange = Workbooks(KGRReport).Worksheets(spreadSheetName).Range("B2:H" & lastrowinSpreadSheet).SpecialCells(xlVisible)
 For Each myArea In myRange.Areas
     For Each rw In myArea.Rows
           strFltrdRng = strFltrdRng & rw.Address & ","
     Next
 Next

 strFltrdRng = Left(strFltrdRng, Len(strFltrdRng) - 1)
 Set myFltrdRange = Range(strFltrdRng)
 myFltrdRange.Copy
 strFltrdRng = ""
Run Code Online (Sandbox Code Playgroud)

这给我一个错误

Set myRange = Workbooks(KGRReport).Worksheets(spreadSheetName).Range("B2:H" & lastrowinSpreadSheet).SpecialCells(xlVisible)
Run Code Online (Sandbox Code Playgroud)

如果根本没有数据,则返回错误:“找不到单元”。

尝试过这样的错误处理:1004错误:未找到任何单元格,简单的解决方法?

但这没有帮助。需要一些有关如何解决此问题的指导。

bre*_*tdj 5

尝试这样的错误处理:

Dim myRange As Range

On Error Resume Next
Set myRange = Range("your range here").SpecialCells(xlVisible)
On Error GoTo 0

If myRange Is Nothing Then
    MsgBox "no cells"
Else
    'do stuff
End If
Run Code Online (Sandbox Code Playgroud)

  • 它不是跳转语句,它清除错误处理程序。 (2认同)