问题重新应用工作簿closuresfilter
我在ThisWorkbook部分中有以下代码:
Private Sub Workbook_BeforeClose(Cancel As Boolean) Sheet("Sheet2").AutoFilter.ApplyFilter ActiveWorkbook.Save ThisWorkbook.Saved = True End Sub
我认为第二行将重新应用我在表2中的自动filter中设置的filter。
我有数据馈送到工作表1,工作表2读取数据并过滤它。 然后文档与AutoHotkey一起工作:打开,获取更多数据,保存并closures定时器。 我只是需要它,以便在文档closures时查看Sheet2上的该filter并重新应用它。
我努力了:
Private Sub Workbook_BeforeClose(Cancel As Boolean) Sheet2.AutoFilter.ApplyFilter ActiveWorkbook.Save ThisWorkbook.Saved = True End Sub
但是这没有用。 看了一些VBA的东西,它似乎改变Sheet2.AutoFilter.ApplyFilter
到Sheet("Sheet2").AutoFilter.Applyfilter
会做的伎俩。 但是现在我只是得到了编译错误:子或函数没有定义 。
Sheet("Sheet2").AutoFilter.Applyfilter
应该是Sheets("Sheet2").AutoFilter.Applyfilter
(缺less“s”)。 Sheet
不是VBA所能识别的,所以它认为这是你在其他地方定义的子程序或函数。 Sheets()
但是,你正在寻找。
Sheet2.[whatever]
在VBA中有应用程序, 但它不一定会引用名为"Sheet2"
的表格。 Sheet2
引用在工作簿中创build的第二个工作表。 如果您创build三个工作表,并将其重命名为喜欢“有趣的页面1”,“有趣的页面4”,“有趣的页面8”, Sheet2.AutoFilter...
将运行在您创build的任何表单上(可能是名为“有趣的第4页”)
通过使用Sheets("Fun Page 4").AutoFilter...
,代码是告诉VB寻找名为“有趣的页面4”,而不是第一,第二等创build的表…
那有意义吗?