首页 > 解决方案 > 这不能应用于所选范围。VBA 上的运行时错误

问题描述

我正在尝试在 Excel VBA 中创建一个可以获取数据并将它们过滤到特定条件的宏。然后将过滤后的表格复制到另一个电子表格中。我试过自己做,但遇到了障碍。

确切的问题是告诉我运行时错误“1004”,它说它不能应用于选定的范围?我不明白这是什么意思。代码错误显示在选择的过滤器部分。自动过滤器是。

对于完成此 VBA 编码的任何提示、指针或帮助,我将不胜感激

我遇到问题的代码是下面的代码

Sub Filtering()

    Dim LastRow As Long

    Set ws = ThisWorkbook.Sheets.Add
    ws.Name = "PERSONA3"

    Sheets("PERSONA3").Activate

    'Find the last row
    LastRow = Range("A1").CurrentRegion.Rows.Count

    'Select Table
    Range("A1:FB" & LastRow).Select

    'Filter Table
    Selection.AutoFilter Field:=AR, Criteria1:="Cigarette"

    'copy paste
    Selection.Copy
      Sheets("PERSONA3").Range("A1" & LastRow).PasteSpecial x1PasteValues

    'Turn off Auto Filter
    Selection.AutoFilter

End Sub

该程序的预期结果应该是创建另一个电子表格,并将过滤后的表格输入到新电子表格中

标签: excelvba

解决方案


您收到错误是因为您试图将 anAutoFilter应用于新创建的(并且完全为空的)工作表。

您应该将 应用于AutoFIlter包含要过滤的数据的上一张表,然后执行复制/粘贴


推荐阅读