以下是一个示例代码,可以用于按列名称筛选所有工作表的宏:
Sub FilterColumnInAllSheets()
Dim ws As Worksheet
Dim columnRange As Range
Dim filterValue As Variant
' 设置要筛选的列名称和筛选值
Dim columnName As String
columnName = "A"
filterValue = "Apple"
' 循环所有工作表
For Each ws In ThisWorkbook.Worksheets
' 确保工作表不被保护
ws.Unprotect
' 检查列是否存在于工作表中
If WorksheetFunction.CountIf(ws.Rows(1), columnName) > 0 Then
' 获取列的范围
Set columnRange = ws.Columns(columnName)
' 筛选列的值
columnRange.AutoFilter Field:=1, Criteria1:=filterValue
' 执行其他操作,例如复制筛选结果等
' ...
' 清除筛选
columnRange.AutoFilter
End If
' 保护工作表
ws.Protect
Next ws
End Sub
这个示例代码首先定义了要筛选的列名称和筛选值。然后,它使用一个循环来遍历所有的工作表。在每个工作表中,它检查列名称是否存在于第一行中。如果存在,它获取列的范围并使用AutoFilter方法对列进行筛选。你可以在筛选后执行其他操作,例如复制筛选结果等。最后,它清除筛选并保护工作表。
请注意,在使用这个宏之前,你需要将列名称和筛选值替换为你的实际需求。还要注意,在循环中保护和解除保护工作表,以确保你对工作表进行的修改是有效的。
上一篇:按列名称拼接Pandas数据帧
下一篇:按列名称使用不同函数分组。