我正在编辑一个包含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中的大量单元格?现有的公司名称是否会导致溢出?
提前谢谢!
答案 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