gpt4 book ai didi

vba - 从所有 Excel 表格 VBA 中删除过滤器

转载 作者:行者123 更新时间:2023-12-04 21:15:18 27 4
gpt4 key购买 nike

我正在创建一些 Excel 插件来为我们的用户完成一些基本任务。我们有一个电子表格,为我们的每个项目提供给我们的用户。在我们处理转换为 SQL 数据库之前,他们使用这些电子表格对可配置项目进行更改。当他们完成电子表格时,他们经常忘记取消隐藏行、列和/或删除过滤器。我想创建一个可以运行的宏以从每个工作表中取消隐藏行/列并从每个 ListObject 中清除过滤器。这是我试图使用的代码:

Sub RemoveFiltersUnhide()
Dim i As Long

Application.ScreenUpdating = False

For i = 1 To ThisWorkbook.Worksheets.Count
ThisWorkbook.Worksheets(i).AutoFilterMode = False
ThisWorkbook.Worksheets(i).Rows.Hidden = False
ThisWorkbook.Worksheets(i).Columns.Hidden = False
Next i

Application.ScreenUpdating = True
End Sub

该代码可用于取消隐藏每张工作表上的行/列,但不会清除过滤器。由于每个提供的工作簿都不同,并且不会包含相同的工作表或列表对象,因此我不知道如何遍历每个表。有人对我如何解决这个问题有任何想法吗?

工作VBA:
Sub RemoveFiltersUnhide()
Dim ws As Worksheet, lo As ListObject

Application.ScreenUpdating = False

For Each ws In ThisWorkbook.Worksheets
ws.Rows.Hidden = False
ws.Columns.Hidden = False

For Each lo In ws.ListObjects
lo.AutoFilter.ShowAllData
Next
Next

Application.ScreenUpdating = True
End Sub

最佳答案

如果提供的语法 here是正确的,以下应该工作。

Dim Sheet As Excel.Worksheet, List As Excel.ListObject

For Each Sheet In ThisWorkbook.Sheets
For Each List In Sheet.ListObjects
List.AutoFilter.ShowAllData
Next
Next

关于vba - 从所有 Excel 表格 VBA 中删除过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45282999/

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