大家好,我有一个问题,我已经考虑过逻辑,但不确定如何编写MACRO。
我在工作中提取数据,我们只关心某些项目的过滤表。所有项目始终位于同一列K中,该列标题为活动状态,第一个值始终从第15行开始。
我们需要的例子是过滤未开始,未开始,和正在处理 问题是有大约50张要做的事情。我知道通过开发一个宏,这是一种更简单的方法。
Dim wSheet As Worksheet
For Each wSheet IN Worksheets
wSheet.ColumnK.Row15.Filter(Not Started, Started, In Process);
Next wSheet
答案 0 :(得分:2)
如果要使用AutoFilter Method过滤两个以上的值,则必须传入一个数组。
Array
请注意,dim w as long, v as variant
v = array("Not Started", "Started", "In Process")
for w=1 to worksheets.count
with worksheets(w)
if .autofiltermode then .autofiltermode = false
with .range(.cells(14, "K"), .cells(rows.count, "K").end(xlup))
.autofilter field:=1, criteria1:=(v), Operator:=xlFilterValues
end with
end with
next w
位于括号内。如果您首先将数组构建为var,那么在用作(v)
时需要将其包装在括号中,以便正确地确定它是一个数组。