gpt4 book ai didi

vba - 除了漏斗图标之外,是否有其他方法可以查看 Excel 中哪些筛选器处于事件状态?

转载 作者:行者123 更新时间:2023-12-02 07:42:55 27 4
gpt4 key购买 nike

这个问题实际上是针对 Excel GUI 的,而不是针对 Excel“编程”本身的。但是,如果这在 GUI 中不可用,我会很好奇是否有 VBA 解决方案(尽管我基本上有 0 VBA 知识/经验)。

除了查看漏斗图标之外,还有其他方法可以查看 Excel 中哪些过滤器处于事件状态吗? 如我所附的屏幕截图所示,某些电子表格的列可能超出可见范围屏幕上,因此很容易错过指示事件过滤器的漏斗图标。 (此外,我认为即使只有几列,也很容易忽略该图标。)

Example of columns going off the screen

理想情况下,会有某种列表显示哪些列/标题被主动过滤。

最佳答案

如果您只需要应用过滤器的列的简单列表,则以下 VBA 代码可能就足够了:

Option Explicit

Function FilterCrit() As String

Dim i As Long
Dim ws As Worksheet
Dim Filter As String

'Application.Volatile

Set ws = ThisWorkbook.Worksheets(1)

If Not ws.FilterMode Then
FilterCrit = "not filtered"
Exit Function
End If
For i = 1 To ws.AutoFilter.Filters.Count
If ws.AutoFilter.Filters(i).On Then
FilterCrit = FilterCrit & "Filter on column " & i & Chr(10)
End If
Next i

End Function

这将迭代这些列,如果对这些列中的任何一个应用过滤器,那么它将被列出。

默认情况下,所有 UDF user defined functions 都不是 volatile 的,因此不会自动重新计算。然而,您可以使用 Application.Volatile 强制它们自动重新计算。但强烈建议不要使用此选项,因为它会严重减慢 Excel 文件的速度。这里推荐替代解决方案:Alternative to Application.Volatile to auto update UDF

关于vba - 除了漏斗图标之外,是否有其他方法可以查看 Excel 中哪些筛选器处于事件状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39259641/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com