当你在excel中使用'Filter'按钮时,肯定有VBA属性背后的特定过滤器是可见的(如creator, filtermode, range等,如https://learn.microsoft.com/en-us/office/vba/api/excel.autofilter所示)。我知道您可以使用VBA编写自己的自动过滤器,但我想使用home选项卡上的内置功能创建一个过滤器,然后查看该特定过滤器的VBA属性。我该怎么做呢?
我已经在一堆不同的搜索词中查找了它,但我没有找到任何可以告诉我如何做我所要求的。我检查开发人员和查询选项卡在excel中,但是我没有看到我在找什么。
编辑:我能够使用https://powerspreadsheets.com/excel-vba-autofilter/#17-Excel-VBA-Get-AutoFiltered-Range中#17的代码来找到我要找的东西。
MsgBox ThisWorkbook.Worksheets("[Sheet name]").AutoFilter.Range.SpecialCells(xlCellTypeVisible).Address
我认为没有直接的方法可以做到这一点,但这里有一个简单的工作。向现有过滤器添加一个新过滤器。然后,使用宏记录器记录将过滤器更改回原来的状态。(换句话说,记录删除过滤器。)宏记录器将写出过滤器的所有参数,并且由于您只是删除了您不关心的参数,因此它将写出仍然有效的过滤器的所有参数。这样你就有了:你所关心的过滤器的所有设置,用VBA代码编写。