vba - Excel VBA 在 50 张纸上运行宏
问题描述
在 excel VBA 中,我试图在 50 张纸上运行一个简单的自动过滤器,但是,它只在一张纸上运行。任何人都可以帮忙吗?代码如下:
Sub Macro2()
'
' Macro2 Macro
'
Dim wb As Workbook
For Each wb In Application.Workbooks
Range(Selection, Selection.End(xlToRight)).Select
Selection.AutoFilter
Selection.End(xlToLeft).Select
Range("G1").Select
ActiveSheet.Range("$A$1:$AC$91").AutoFilter Field:=7, Criteria1:=Array("11" _
, "21", "22", "23", "31-33", "42", "44-45", "48-49", "51", "52", "53", "54", "55", "56", "61" _
, "62", "71", "72", "81"), Operator:=xlFilterValues
Selection.End(xlToLeft).Select
Next wb
End Sub
解决方案
您的代码很接近,但是...您正在遍历workbook
. 相反,application
您想遍历worksheet
. workbook
此外,您在这里拥有所有这些随机.Select
代码。你不需要它。您只需要在每个工作表中自动过滤一个范围:
Sub Macro2()
'
' Macro2 Macro
'
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1:AC91").AutoFilter Field:=7, Criteria1:=Array("11" _
, "21", "22", "23", "31-33", "42", "44-45", "48-49", "51", "52", "53", "54", "55", "56", "61" _
, "62", "71", "72", "81"), Operator:=xlFilterValues
Next ws
End Sub
现在很好很简单,因为每一行都很清楚。1) 循环浏览当前工作簿中的每个工作表 ( thisworkbook
)。2) 对 应用自动过滤器A1:AC91
。
推荐阅读
- linux - 我如何编写一个 egrep 命令来查找所有大写或小写字母中至少有 5 个连续元音 (aeiou) 的条目?
- java - 如果存在这样的“月份”,有没有办法动态创建计数器?
- html - Google Maps info Bubble with Font Awesome Icons and bootstrap?
- java - 在二维数组的 IF 语句中使用 AND OR 对行的值求和
- mysql - Pomelo MySqlException:无法连接到任何指定的 MySQL 主机
- java - /storage/emulated/0/Notes/(没有这样的文件或目录)?
- mysql - 左连接 MYSQL 查询中的重复项
- python - 在 Python 中处理 json api 响应的问题
- jquery - CakePHP 2 无法识别通过 ajax 上传的文件
- jquery - 图像旋转后的选择区域