0

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

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

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

先感谢您!

4

1 回答 1

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
于 2012-08-07T23:44:13.913 回答