从VBA中的另一个工作表访问数据透视表

时间:2016-04-05 15:57:32

标签: excel vba excel-vba

非常新手的用户,只是让我的脚湿透了。如果这是一个愚蠢的问题,请原谅这一点 - 我非常清楚我现在在做什么。

我正在使用VBA和Excel创建用户表单。到目前为止,我已成功学习如何从数据透视表中提取信息,但我遇到了麻烦。

从另一张表运行我的用户表单时,它无法找到数据透视表。这是我使用的代码。

Set PT = ActiveSheet.PivotTables(1)

当我在那张纸上工作时,效果非常好,但是我设想一个场景,我在不同的纸张上有多个支点,并且想要调用信息并交叉引用数据。

我想也许Set PT = ActiveWorkbook.PivotTables(1)可行,但当然不会。显然,我还不太了解如何使用数据透视表变量。

有谁知道我会怎么做呢?非常感谢。

1 个答案:

答案 0 :(得分:0)

如果您打开UserForm,打开UserForm的工作簿将是活动的。如果我理解正确,您想在不同的工作表上引用数据透视表集合的第一个对象。为此,请使用数据透视表定义文件的路径,如下所示:

Dim path as string
Dim wbk as workbook
Dim PT As PivotTable   

path= "C:\folder1\folder2\yourfile.extension"

set wbk = workbooks.open(path)
Set PT = wbk.worksheets("Sheet1").PivotTables(1)
'do your actions, save the file if you want to keep changes
wbk.close
set wbk = nothing

或者使用工作表中的所有数据透视表,而不是:

Set PT = wbk.worksheets("Sheet1").PivotTables(1)

您可以使用循环收集,此示例刷新表:

 For Each PT In wbk.worksheets("Sheet1").PivotTables
        PT.RefreshTable
 Next PT