我已经编写了一个宏,可以根据手动输入的用户设置从工作表中调用某些记录。我正在使用的代码如下所示:
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种组合。
您可以使用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