当过滤范围为空时处理“找不到单元格”错误

问题描述 投票:0回答:1

我在范围上进行一些过滤,然后复制该过滤范围

myRange.SpecialCells(xlCellTypeVisible).Copy

只要筛选器筛选出我得到的所有案例,就>]

错误1004未找到单元格

我正在寻找一种方法(无On Error)来检查过滤范围是否为空。

我已经尝试用lastRow = .Cells(.Rows.Count, ColumnName).End(xlUp).Row设置范围并检查if lastRow > 0,但是通过这种方式,我还计算了过滤(或隐藏)的行内容。

我也尝试过

Sub test()
    Dim rngStart As Range
    Dim rngFiltered As Range

    Set rngStart = Sheets(1).Range("A1:A6")
    Set rngFiltered = rngStart.SpecialCells(xlCellTypeVisible).Select

    If rngFiltered.Rows.Count = 0 Then
        MsgBox ("No Cases")
    Else
        MsgBox ("Found Cases")
    End If
End Sub

但是在Set rngFiltered行中也会出现错误“找不到单元格。”>

我没有标题行,因为过滤器非常复杂,以至于我不使用.Sort函数就对其进行了编程

我目前有一个宏,该宏在自动过滤器中经历多个条件并删除可见行。似乎没有问题,直到没有符合条件的行,这给我一个错误。我是...

excel vba rows delete-row autofilter
1个回答
7
投票
On Error Resume Next
Set rngFiltered = rngStart.SpecialCells(xlCellTypeVisible)
On Error Goto 0

If not rngFiltered is Nothing then
    rngFiltered.Copy
End If

5
投票

我将解决方案存储到一个函数中。在这里,我对机械强度使用错误。


0
投票

我要做的是计数已过滤的行:


0
投票

有相同的问题,但是对于过滤命名表,以这种方式解决了*:

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.