我正在尝试运行一个宏来替换Excel中表格中的数据,而这些宏最初可能会被过滤。
代码应首先删除过滤器,然后运行其余代码。
我尝试了“Autofilter”命令,但是表格范围内的普通过滤器选项不可见,我不得不再次手动创建过滤器选项(对我来说没什么大不了的,但是其他人使用这个文件)。
有没有办法清除过滤器而不从表中删除过滤器?
答案 0 :(得分:22)
对于表格,您只需使用其ShowAllData
对象的Autofilter
方法:
activesheet.listobjects(1).autofilter.showalldata
请注意,即使当前没有应用过滤器,也不会出现错误。
答案 1 :(得分:1)
嗨,大家好使用此“ Worksheets(“ Sheet1”)。ListObjects(1).Range.AutoFilter = False”,请注意,如果已经应用了过滤器,则如果未应用过滤器,它将删除过滤器,然后再应用过滤器过滤器。
答案 2 :(得分:0)
我发现“ ... ClearAllData”方法失败。
偷偷摸摸的-不是一个非常优雅的解决方案-可以按字段工作(如果您需要做整个表,那么麻烦),但是如果您只有一个字段(例如,在我的示例中的字段2)很容易使用通配符:< / p>
ActiveSheet.ListObjects(1).Range.AutoFilter Field:=2, Criteria1:="=*"
答案 3 :(得分:-1)
ActiveSheet.ShowAllData
或者
Cells.AutoFilter