【问题标题】:Referencing PivotTable Ranges in VBA for INDEX MATCH在 VBA 中为 INDEX MATCH 引用数据透视表范围
【发布时间】:2021-05-05 14:36:42
【问题描述】:

在 VBA 中使用 INDEX 和 MATCH 时是否可以引用数据透视表范围?

我的数据透视表是动态的,行/列大小会发生变化。而不是在公式中引用 excel 的底行 (1048576) 和最后一列 (XFD) 中的查找数组,是否可以使用 .DataBodyRange 和 .DataRange?

谢谢!

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您没有说,但如果数据透视表使用 OLAP 数据源,则使用 GETPIVOTDATA() 工作表函数比使用 INDEX() 和 MATCH() 更容易。使用 GETPIVOTDATA() 最简单的方法是编辑数据透视表外的空白单元格,键入 = 开始公式,然后单击数据透视表中感兴趣的单元格,Excel 将为您创建一个 GETPIVOTDATA() 调用您单击的单元格的选择设置,这将足够强大,可以在导致出现不同行和列的数据透视表刷新中存活下来。然后,您可以变得聪明并编辑 GETPIVIOTDATA() 的参数(搜索 MDX 以获取更多信息),以使用公式根据行和列标题而不是工作表坐标从数据透视表中检索不同的单元格。我建议在工作表上而不是在 vba 中尽可能多地执行此操作,然后为结果单元格命名(命名范围)并在 vba 中使用该名称,这样更容易维护。

    【讨论】:

    • 通过 GETPIVOTDATA 进行了更多搜索,使用它并完美运行,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多