非常新手的用户,只是让我的脚湿透了。如果这是一个愚蠢的问题,请原谅这一点 - 我非常清楚我现在在做什么。
我正在使用VBA和Excel创建用户表单。到目前为止,我已成功学习如何从数据透视表中提取信息,但我遇到了麻烦。
从另一张表运行我的用户表单时,它无法找到数据透视表。这是我使用的代码。
Set PT = ActiveSheet.PivotTables(1)
当我在那张纸上工作时,效果非常好,但是我设想一个场景,我在不同的纸张上有多个支点,并且想要调用信息并交叉引用数据。
我想也许Set PT = ActiveWorkbook.PivotTables(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