显示已在Excel中筛选的列标题

显示已在Excel中筛选的列标题,excel,user-defined-functions,Excel,User Defined Functions,我希望能够显示已应用于数据的筛选器列表 我已经找到了一个解决方案,从评论中可以看出,这个解决方案似乎是可行的 我已复制该函数: Function CheckFilters(r As Range) As String Set AWS = ActiveSheet fstate = "" If AWS.FilterMode Then c = AWS.AutoFilter.Filters.Count 'go through each column and check for fil

我希望能够显示已应用于数据的筛选器列表

我已经找到了一个解决方案,从评论中可以看出,这个解决方案似乎是可行的

我已复制该函数:

Function CheckFilters(r As Range) As String

Set AWS = ActiveSheet
fstate = ""

If AWS.FilterMode Then
    c = AWS.AutoFilter.Filters.Count

    'go through each column and check for filters
    For i = 1 To c Step 1
       If AWS.AutoFilter.Filters(i).On Then
            fstate = fstate & r(i).Value & ", "
       End If
Next i

'removes the last comma
fstate = Left(fstate, Len(fstate) - 2) 
Else
    fstate = "NO ACTIVE FILTERS"
End If

CheckFilters = fstate

End Function
将以下公式复制到我的电子表格的单元格中:

=CheckFilters(A3:U3) & LEFT(SUBTOTAL(9,A5:A200),0)
公式在中的单元格显示一个#值错误,当我尝试过滤标题时,收到一个“变量未定义”错误,VBA窗口中突出显示了
AWS=

我尝试删除AWS元素,并通过函数使用了
ActiveSheet
,但随后我收到另一个“变量未定义”错误,突出显示了
fstate

我不确定如何定义“fstate”

我会回到原来的帖子,但我没有足够的代表添加评论,以联系发布解决方案的成员

任何帮助都将受到感激

编辑-原始问题已解决,但我现在有一条“编译错误:未找到方法或数据成员”消息,其中
中突出显示了
.FilterMode
,如果是AWS.FilterMode,则

正在寻求支持以立即修复此部件:)


谢谢。

调暗变量会让它工作吗?尝试添加:Dim AWS为sheet,Dim fstate为string感谢JvdD,我想我需要定义它们,但不确定它们是什么-这就解决了这个错误。我已经更新了问题,因为我现在有另一个错误!你还有什么建议吗?抱歉-我的VBA知识正在逐步积累,但还不足以安全地解决错误!