【问题标题】:Accessing Pivot tables from another Sheet in VBA从 VBA 中的另一个工作表访问数据透视表
【发布时间】:2016-04-05 15:57:32
【问题描述】:

这里非常新手用户,刚刚弄湿了我的脚。如果这是一个愚蠢的问题,请原谅 - 我很确定我在做什么。

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

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

Set PT = ActiveSheet.PivotTables(1)

当我是那张纸时,效果很好,但我设想这样一种情况,我在不同的纸上有多个枢轴,并且想要调用 info 并交叉引用数据。

我认为Set PT = ActiveWorkbook.PivotTables(1) 可能会起作用,但当然不会。显然我还不太明白如何使用数据透视表变量。

有人知道我该怎么做吗?非常感谢。

【问题讨论】:

  • 如果您在不同的工作表上有多个枢轴,那么您的代码将如何确定应该使用哪一个?

标签: vba excel


【解决方案1】:

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

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

【讨论】:

  • 非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2014-03-29
  • 2013-08-22
  • 2017-11-22
  • 1970-01-01
  • 1970-01-01
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多