【问题标题】:Select a number of columns in an excel table for advanced filter在 Excel 表格中选择多列进行高级筛选
【发布时间】:2022-08-19 00:11:07
【问题描述】:

我在表中创建了原始数据,我使用 VBA 的高级过滤器 但是当我运行代码时,表格消失了,所以我尝试编写代码来选择许多列,但每次尝试时都会收到错误

编码

\'Assuming the name of the table is \"RawData\"
LastTransRow = Sheet9.ListObjects(\"RawData\").DataBodyRange(19999, 1).End(xlUp).Row \'Last Transaction Row
Sheet9.ListObjects(\"RawData\").DataBodyRange(\"G1:A\" & LastTransRow).AdvancedFilter xlFilterCopy, CriteriaRange:=Sheet11.Range(\"A2:B3\"), CopyToRange:=Sheet11.Range(\"K2:E19999\"), Unique:=True
  • 您的代码在这里工作。尝试删除这段代码:(\"G1:A\" & LastTransRow),因为 DataBodyRange 在定义 ListObject 时定义了它的范围。无需计算这些限制。
  • 但是我怎样才能将我的范围限制在( Ato G )。我的意思是原始数据范围(从 A 到 T 列),我需要从 A 到 G 进行高级过滤
  • 是否要过滤 ListObject 的部分 DataBodyRange 行中的唯一项?
  • 您想要过滤部分 DataBodyRange 列。没关系。原始数据从 A 到 T,您想应用从 A 到 G 的高级过滤器。但是原始数据从 Row1 扩展到 Row__ ?可能是在计算 lngLastRow 时,您覆盖的数据比您真正想要的要多。因为 20,000 行很可能会超出您的表限制。
  • 您能否澄清正在发生的错误是什么?这个错误的描述是什么?它发生在哪一行代码上?

标签: excel vba advanced-filter


【解决方案1】:

我添加了对包含代码 (ThisWorkbook) 的工作簿的引用,以确保在其子工作表上执行操作。重置一些参数(例如:“G1:A”>>>“A1:G”,“K2:E19999”>>>“E2:K19999”)。在我的机器上工作。试试看。

Sub AdvFilterTest()
    Dim LastTransRow As Long

    'Assuming the name of the table is "RawData"
    With ThisWorkbook.Sheets("Sheet9")
        .Activate
        LastTransRow = .ListObjects("RawData").DataBodyRange(19999, 1).End(xlUp).Row 'Last Transaction Row
        .ListObjects("RawData").DataBodyRange.Range("A1:G" & LastTransRow).AdvancedFilter xlFilterCopy, CriteriaRange:=ThisWorkbook.Sheets("Sheet11").Range("A2:B3"), CopyToRange:=ThisWorkbook.Sheets("Sheet11").Range("E2:K19999"), Unique:=True

    End With
End Sub

【讨论】:

  • 谢谢,我会试试这个
  • 另一个想法:修改我发布的上述代码,注释掉.Activate 行。然后手动选择 sheet11 并运行代码。设置高级过滤器时,最好在最初选择目标工作表的情况下这样做,这样 Excel 就不会返回错误消息,指出您只能过滤同一工作表的数据。这可以在宏记录器中观察到,执行相同的操作,一次选择每个工作表。
  • 这些宏测试都没有影响我构建的数据透视表。
  • 我试过那个鳕鱼,但我仍然遇到同样的问题,我不知道为什么?
  • 你能和我一起聊天吗?
【解决方案2】:
[Here it is the "RawData" table][1]
[This picture shows sheet 11][2]
[I got this error after running the code][3]
[After running the code the table convert to range][4]
[which influenced the pivot table][5]
  [1]: https://i.stack.imgur.com/JiqDm.jpg
  [2]: https://i.stack.imgur.com/wavgz.jpg
  [3]: https://i.stack.imgur.com/RlPnp.jpg
  [4]: https://i.stack.imgur.com/dzwfn.jpg
  [5]: https://i.stack.imgur.com/27enU.jpg

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多