由于自动过滤器没有值,导致出现宏错误

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

我已经编写了一个宏,可以根据手动输入的用户设置从工作表中调用某些记录。我正在使用的代码如下所示:

Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Serial Number Data")

Sheets("Serial Number Data").Select

sh.UsedRange.AutoFilter 7, Range("project").Value
sh.UsedRange.AutoFilter 8, Range("platform").Value
sh.UsedRange.AutoFilter 9, Range("equipment").Value

问题是这些过滤器的组合不存在。当用户输入不存在的组合的值时,宏错误。如果值无效,是否可以在宏中设置标志并发送错误消息。我已经考虑过为输入创建相关的滤波器,以消除前端的错误,但可能必须考虑100种组合。

excel vba autofilter
1个回答
0
投票

您可以使用Application.CountIfs确定这些值的组合是否存在:

With sh.UsedRange
    If Application.CountIfs(.Columns(7), sh.Range("project").Value, _
                            .Columns(8), sh.Range("platform").Value, _
                            .Columns(9), sh.Range("equipment").Value) = 0 Then
         ' Combination not found
    End If
End With
© www.soinside.com 2019 - 2024. All rights reserved.