繁体   English   中英

Excel VBA 2016 中 Range.Autofilter 的运行时错误 1004

[英]Run-time error 1004 with Range.Autofilter in Excel VBA 2016

我的代码是

With ActiveSheet
   .AutoFilterMode = False
   .Range("23:23").AutoFilter
End With

这在 Excel 2010 中工作正常,但在 Excel 2016 中我得到:-

Range 类的运行时错误“1004”自动筛选方法失败

此外,我可以手动单击功能区中的过滤器图标(在数据 > 过滤器下),但不能使用 VBA 代码执行此操作

任何想法都非常感谢。

当您尝试按空行进行过滤时,自动AutoFilter会出现1004错误。 尝试在第23行放一些东西并像这样再次过滤它:

Public Sub TestMe()    
    With ActiveSheet
       .AutoFilterMode = False
       .Range("23:23").Cells(1) = 1
       .Range("23:23").Cells(2) = 2
       .Range("23:23").AutoFilter
    End With

End Sub

如果它有效,那么您在第 23 行中根本没有值,因此它无法应用自动过滤器。


通常,Excel 中的AutoFilter有一些奇怪的行为。 例如,如果您打开一个新的 Excel 文件并运行以下代码:

Public Sub TestMe()

    With ActiveSheet
       .AutoFilterMode = False
       '.Range("23:23").Cells(1) = 1
       '.Range("23:23").Cells(2) = 2
       .Range("23:23").AutoFilter
    End With    
End Sub

它会给你1004错误。 让我们称这个时间势头为FirstTime

然后,如果您取消对这两个范围的注释并运行它,则会出现AutoFilter

现在奇怪的部分 - 从工作表中删除所有单元格,对这两个范围进行评论,它看起来真的像它在FirstTime时的样子 但是,如果您运行该代码,它将毫无问题地在空的第 23 行上放置一个自动过滤器。

删除现有文件管理器并再次运行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM