如何编写一个macros以通过多个值筛选整个工作簿中的列?

你好我有一个问题,我已经想出了逻辑不知道如何写MACRO到它。

我在工作中提取数据,我们只关心为特定项目过滤表单。 所有的项目总是位于同一列K列的标题是活动状态,第一个值总是从第15行开始。

我们需要的例子是筛选未启动,已启动和正在处理问题是有大约50张要做到这一点。 我知道有一个更简单的方法,通过开发一个macros。

Dim wSheet As Worksheet For Each wSheet IN Worksheets wSheet.ColumnK.Row15.Filter(Not Started, Started, In Process); Next wSheet 

如果你有两个以上的值用AutoFilter方法过滤,你将不得不传入一个数组。

 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 

请注意(v)在括号内。 如果您首先将数组构build为一个var,那么在用作criteria1:=(v)时需要将其包装在括号中criteria1:=(v) ,以便将其正确地确定为一个数组。