如何解决如何检查是否使用VBA在Excel中应用了特定过滤器?
我需要做的是检查(使用VBA)以下过滤器是否应用于 Manager 列:
一些研究使我进入了Worksheets(1).AutoFilterMode
,它只能告诉您是否应用了过滤器。
最后,我遇到了this的答案,并尝试了以下代码:
Dim datarange as Range
Set datarange = Worksheets("Sales Data").Range("B2:B11")
If testrange.SpecialCells(xlCellTypeVisible).Count = 4 Then
' some code
End If
目前,它运行良好。我知道这不是一个完美的解决方案。更改数据将无法使用。有什么方法可以检查 Manager 列是否被 Manager 1 过滤?
解决方法
您可以尝试类似的事情
Sub TestFilter()
Dim I As Long
With Worksheets(1).AutoFilter
For I = 1 To .Filters.Count
If .Filters(I).On Then
MsgBox "Column: " & I & "; Criteria1: " & .Filters(I).Criteria1
End If
Next I
End With
End Sub
如果您只有一个条件,则效果很好,否则该语句
MsgBox "Column:" & I & "; Criteria1:" & .Filters (I) .Criteria1
将导致运行时错误。
要获取列标题,您可以使用
MsgBox "Column: " & .Range(1,I) & "; Criteria1: " & .Filters(I).Criteria1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。