[英]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.