2015-10-13 40 views
0

我录制了一个宏来创建一个表并过滤掉第9列中的某些值。我想显示所有结果,except for Taxes and General。生成的代码反过来工作,并筛选您想要查看的字段。过滤要忽略的值而不是要显示的值

我怎样才能切换它,所以我硬编码我不想看到的值。因此,当添加新值时,它也会自动拾取,否则会被忽略。

LastRow = Sheets(Sheets(1).Name).Cells(Rows.Count, "A").End(xlUp).Row 
ActiveSheet.ListObjects.Add(xlSrcRange, Range("A1:T" & LastRow), , xlYes).Name = "Table1" 
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=9, Criteria1:= _ 
    Array("Intel", "Cisco", "Global", "Local", "HR", "Finance", _ 
    "Cables", "HP"), Operator:=xlFilterValues 

回答

1

你不能那样做。这不是AutoFilter的工作原理,也不是VBA。

请参阅how to use AutoFilter。 VBA允许您操作过滤器的属性,而不是定义新的工作方式。

您最好的机会是使用另一个宏以新值更新过滤器。您可以选择是要让该宏被用户激活,还是由诸如Worksheet.Change之类的事件触发。

+0

哇真的吗?该死的,这是一个无赖.. – CustomX

+0

@CustomX这并不太可怕。这不会是一个非常难写的宏(当然你可以录制一个“引导”宏来编辑更改)。 – Amit

+0

是的,但最终会不会给我同样的结果?它会一直忽略列表中的新项目吗? – CustomX