excel - 当过滤条件可能并不总是出现时使用 VBA 进行过滤
问题描述
我试图让 VBA 过滤一个列,以显示包含 4 个潜在结果的所有结果。
在过滤 3 个短语(如下面的代码中可见)时,我已经成功地实现了它。但是,第四个选项并不总是在数据中,有时我运行此报告时它不会在列中。目前,当我将此选项添加到我的代码中时,它突然根本没有显示任何结果。任何提示或建议都会很棒。
Workbooks("Stock Data.xlsm").Worksheets("Data").Activate
Worksheets("Data").Range("A1").AutoFilter Field:=1, Criteria1:=Array("Apple", "Banana", "Raspberry", "chocolate")
令人讨厌的是,它适用于我最初的 3 个选择,只是因为第四个选项“巧克力”不在数据中,它根本不起作用。
如果我删除“巧克力”选项,那么我会得到我想要的确切结果,但我不想每次获得数据时都必须更改它。
解决方案
你需要学会不使用Activate
. 并添加, Operator:=xlFilterValues
Workbooks("Stock Data.xlsm").Worksheets("Data").Range("A1").AutoFilter Field:=1, Criteria1:=Array("Apple", "Banana", "Raspberry", "chocolate"), Operator:=xlFilterValues
ThisWorkbook
如果宏在,我会使用Workbooks("Stock Data.xlsm")
ThisWorkbook.Sheets("Data").Range("A1").AutoFilter Field:=1, Criteria1:=Array("Apple", "Banana", "Raspberry", "chocolate"), Operator:=xlFilterValues
推荐阅读
- python - 从数据帧解码折线
- mod-rewrite - 在单击窗口的另一个区域之前,不会显示指向目标 iframe 的链接
- git - Git 显示移动文件的上游
- google-cloud-platform - 谷歌云虚拟机实例没有响应?
- android - 如何让 Android 计时器在向上和向下计数模式下运行
- spring - Spring JPA 排序和数组/列表排序在关系上存在分歧
- android - 如何在android应用程序中获取代码的执行时间
- contao - Contao 4.10:带有 fileTree 的 DCA 元字段
- javascript - 如何使用 Jest 模拟 firebase.database.ServerValue.increment() 函数
- azure-web-app-service - 无法从 PACKAGE.txt 初始化运行