在VBA AutoFilter Array中编辑宏错误

时间:2012-08-07 22:27:28

标签: excel vba excel-vba excel-2010

我正在编辑一个包含2500个条目的文档,并且需要应用一个AutoFilter,这是我第一次尝试编辑宏代码,请耐心等待。

我使用record来创建宏,当我去编辑它的一部分时,我在编辑的代码部分之外得到了“编译错误:预期:表达式”。 '...'是更多的条目。

ActiveSheet.Range("$A$1:$C$2500").AutoFilter Field := 2, Criteria1 := Array( _
    "#N/A","3K Technologies, LLC","ABN","Accenture","AIMCo",...,"ITAT Partners" _
    ,"IT-Beratung Gunnar Hofmann","John Hancock","John Hancock Financial Network", _  
End Sub

并非所有条目都显示,除“End Sub”以外的所有代码均为红色。

似乎因为我记录了宏而不是写它,所有的名称值都被存储并导致问题。如何将自动过滤器应用于VBA中的大量单元格?现有的公司名称是否会导致溢出?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

如果您只想申请自动过滤器,可以使用:

ActiveSheet.Range("$A$1:$C$2500").AutoFilter

您的所有其余代码都是您记录的所有设置,例如每列的每个复选框。

如果您在应用过滤器后尝试编辑该内容中的默认选择设置,您特别遇到哪个部分?

需要注意的一点是,Excel的VBA只能使用最后的_符号将相同的代码行向下延伸大约24次。如果有太多的话,Excel将无法记录过滤器的复选框选项,因此如果这是您遇到的具体问题,则必须手动编码,然后按照此设置进行:

With ActiveSheet.Range("$A$1:$C$2500")
    '- Use only one line break with a long list off to the right of what you want selected
    '- it may look ugly in code, but with Excel's limit of 24 lines it's necissary in this case.
    .AutoFilter Field:=2, _
        Criteria1:=Array("#N/A", "3K Technologies, LLC", "ABN", "Accenture", "AIMCo", "ITAT Partners", "IT-Beratung Gunnar Hofmann", "John Hancock", "John Hancock Financial Network")
    '- Here you can add settings for additional columns like this:
    '.AutoFilter Field:=1, _
    '    Criteria1:=Array("#N/A", "3K Technologies, LLC", "ABN", "Accenture", "AIMCo", "ITAT Partners", "IT-Beratung Gunnar Hofmann", "John Hancock", "John Hancock Financial Network")
End With