2012-08-07 22 views
0

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

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

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中的大量单元格?现有公司名称是否导致溢出?

预先感谢您!

+0

真的简单地说,没有真正看到你的问题(我会到达那里),我认为这不是':='之前的空格? – mkingston 2012-08-07 22:34:03

+0

当你编辑你的代码时,你也删除了数组的末尾......第三行末尾的'_'使得vba认为'End Sub'是Array的一部分(' – SeanC 2012-08-08 13:55:14

回答

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 
+0

谢谢你洞察力,我将与它合作,看看我能从中得到什么。 好东西要知道,再次感谢。 – 2012-08-17 18:00:48