运行时错误1004,范围为。Excel VBA 2016中的自动筛选

运行时错误1004,范围为。Excel VBA 2016中的自动筛选,vba,excel,Vba,Excel,我的代码是 With ActiveSheet .AutoFilterMode = False .Range("23:23").AutoFilter End With 这在Excel 2010中运行良好,但在Excel 2016中我得到:- 运行时错误“1004” 范围类的自动筛选方法失败 此外,我可以手动单击功能区中“数据>过滤器”下的过滤器图标,但无法使用VBA代码执行此操作 非常感谢您的任何想法。当您尝试按空行筛选时,自动筛选会给出1004错误。尝试在第23行放置一些内容,并再

我的代码是

With ActiveSheet
   .AutoFilterMode = False
   .Range("23:23").AutoFilter
End With
这在Excel 2010中运行良好,但在Excel 2016中我得到:-

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

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

非常感谢您的任何想法。

当您尝试按空行筛选时,自动筛选会给出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中的自动筛选有一些奇怪的行为。例如,如果打开新的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错误。让我们第一次称这次为动量

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


现在奇怪的部分是——从工作表中删除所有单元格,对这两个范围进行注释,它看起来真的像第一次那样。但是,如果您运行代码,它将在空的第23行上放置一个自动筛选,而不会出现问题。

删除现有的文件管理器,然后再次运行它

谢谢,我肯定有值,因为此代码在Excel中运行良好2010@RShome-在你的地方,我会试试。自动筛选有点困难,并且有一些奇怪的行为。谢谢你,我在上面尝试过,但仍然得到相同的错误。它在Excel 2010中工作得非常好,这是我不理解的。