如何基于VBA中的过滤器值创建新工作表

时间:2018-05-08 20:30:54

标签: excel vba excel-vba

如下图所示,我有一个包含所有用户信息的工作簿(左侧屏幕截图)。我想根据团队负责人的名称制作单独的工作表(右侧截图)。我的问题是团队领导列值总是改变,因为我从应用程序运行报告。

但我的实际代码看起来是:

Range("A:D").AutoFilter Field:=4, Array("Marth", "Rick", "Georgia")

如果有人能帮助我,我们将不胜感激!

enter image description here

2 个答案:

答案 0 :(得分:0)

使用数组过滤多个结果时,请使用Operator:=xlFilterValues的第3个参数。

请尝试以下一行:

Range("A:D").AutoFilter Field:=4, Criteria1:=Array("Marth", "Rick", "Georgia"), _
Operator:=xlFilterValues

答案 1 :(得分:0)

此代码过滤第一个标准“marth”的源数据(sheet1)并将其复制/粘贴到“marth”工作表中。

要完成代码,您需要通过添加其他步骤进行过滤,复制和粘贴来为每个工作表构建代码。祝好运!

Sheets("Sheet1").Select
Range("A1").Select
Selection.AutoFilter

'identifiers that need to be filtered from the full report
ActiveSheet.Range("A:D").AutoFilter Field:=4, Criteria1:= _
Array("Marth"), Operator:=xlFilterValues


'columns that need to be brought from full report to the group tab
Range("A:D").Copy

'update for the sheet you are pasting to
Sheets("Marth").Select

Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False