首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐藏无法工作的自动筛选箭头

隐藏无法工作的自动筛选箭头
EN

Stack Overflow用户
提问于 2015-01-06 15:13:36
回答 2查看 5.9K关注 0票数 0
代码语言:javascript
复制
'data is filtered
Sub Filtration(mainsheet As Worksheet, lastrow As Long)

    Application.ScreenUpdating = False

    With mainsheet

        'filters
        .Range("$A$12:$J$" & lastrow).AutoFilter Field:=7, Criteria1:="TRUE" 
        .Range("$A$12:$J$" & lastrow).AutoFilter Field:=10, Criteria1:="TRUE"

        HideAutoFilterDropdowns

    End With

    Application.ScreenUpdating = True

End Sub

Sub HideAutoFilterDropdowns()
    With Range("A12")
        .AutoFilter Field:=1, VisibleDropDown:=False
        .AutoFilter Field:=2, VisibleDropDown:=False
        .AutoFilter Field:=3, VisibleDropDown:=False
        .AutoFilter Field:=4, VisibleDropDown:=False
        .AutoFilter Field:=5, VisibleDropDown:=False
        .AutoFilter Field:=6, VisibleDropDown:=False
        .AutoFilter Field:=7, VisibleDropDown:=False 'problem is here
        .AutoFilter Field:=8, VisibleDropDown:=False
        .AutoFilter Field:=9, VisibleDropDown:=False
        .AutoFilter Field:=10, VisibleDropDown:=False
    End With
End Sub

在上面的代码中,我的工作表上有一组数据,并由字段7和10 (G&J列)对其进行过滤。然后我想隐藏掉的箭头。它适用于1-6和8-10,但当我试图隐藏第7列时,它会取消数据过滤(与过滤函数的功能相反)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-06 15:21:33

您需要将Criteria1:=代码保留在行中。一旦您删除该条件并运行HideAutoFilterDropdowns(),您实际上就是告诉它删除标准筛选器。

代码语言:javascript
复制
With mainsheet

    'filters
    .Range("$A$12:$J$" & lastrow).AutoFilter Field:=7, Criteria1:="TRUE", VisibleDropDown:=False 
    .Range("$A$12:$J$" & lastrow).AutoFilter Field:=10, Criteria1:="TRUE", VisibleDropDown:=False

End With
票数 1
EN

Stack Overflow用户

发布于 2017-10-08 00:35:16

您还可以插入在HideArrows中找到的Sub "HideArrows()“。对原始代码进行了修改,以满足您的特定需求和注释。

我也有同样的问题,并且想要分享这个解决方案,这个解决方案在许多打开的关于这个主题的标签中找到。希望这将对像我这样正在搜索留言板寻求帮助和答案的人有所帮助。

代码语言:javascript
复制
Sub HideArrows() 

'hides all arrows except column 2
Dim c As Range
Dim i As Integer
i = Cells(1, 1).End(xlToRight).Column
Application.ScreenUpdating = False

For Each c In Range(Cells(1, 1), Cells(1, i))
 'If c.Column <> 2 Then    **** added comment to remove
  c.AutoFilter Field:=c.Column, _
  Visibledropdown:=False
 'End If    **** added comment to remove
Next 

Application.ScreenUpdating = True 
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27801531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档