Excel VBA 将表添加到数据透视表数据模型

问题描述 投票:0回答:2

美好的一天,

我试图从表中插入数据透视表,但也通过 VBA 将其添加到数据模型中。 我已手动记录该过程,并按照此链接的示例进行操作:https://powerpivotpro.com/2014/07/adding-tables-to-a-model-from-vba-in-excel-2013/

我更改了之前在代码中设置的数据路径和工作簿名称的变量。当我运行宏时,我在第一行收到以下错误:“运行时错误 5:无效的过程调用或参数”

我以前从未通过 VBA 将数据透视表添加到数据模型中,因此不确定代码应该是什么样子(除了我在网上看到的并且我的似乎遵循示例)

    MainWB.Connections.Add2 "WorksheetConnection_" & MainWB.Name & "!Table_SDCdata", "", _
        "WORKSHEET;" & DataPath & "\" & MainWB.Name & ", " & MainWB.Name & "!Table_SDCdata", 7, True, False

    MainWB.PivotCaches.Create(SourceType:=xlExternal, SourceData:=MainWB.Connections("WorksheetConnection_" & MainWB.Name & "!Table_SDCdata" _
        ), Version:=6).CreatePivotTable TableDestination:=wsPivotModel.Name & "!R1C1", TableName:="PvtSDCmodel", DefaultVersion:=6

变量如下:(**为了安全起见在这个问题中添加了替换,两个变量都是正确的并且在代码中使用了很多次没有问题)

MainWB.名称: **2791 SDC 内陆 12.08.2020.xlsbCOMBINED.xls

数据路径: C:_Store\Simone_d_drive\Desktop*�9\Macros* aw 数据** 91�0.08.16

任何帮助或指出正确的方向将非常感谢!

excel vba pivot-table datamodel
2个回答
2
投票

我设法找到了我的错误:

更新代码:

    MainWB.Connections.Add2 "WorksheetConnection_" & MainWB.Name & "!Table_SDCdata", "", _
        "WORKSHEET;" & DataPath & "\" & MainWB.Name, MainWB.Name & "!Table_SDCdata", 7, True, False

我必须删除 2 个引号,一个位于连接字符串末尾,第二个位于命令文本开头。


0
投票

我有一个问题。当我的源数据位于我的工作簿中,但数据范围每个月都会不同,并且我没有使用数据的表格格式而是正常范围时,如何在此数据模型中使用变量。我的代码如下所示:

Dim myrange As String
myrange = Sheets("EKPO").Range("A1").CurrentRegion.Address

Workbooks("Book1").Connections.Add2 "WorksheetConnection_EKPO!" & myrange, _
        , "", "WORKSHEET;[Book1]EKPO!" & myrange, "EKPO!" & myrange, 7, True, False
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal, SourceData:= _
        ActiveWorkbook.Connections("WorksheetConnection_EKPO!" & myrange), Version _
        :=8).CreatePivotTable TableDestination:="Data model!R1C1", TableName:= _
        "PivotTable2", DefaultVersion:=8

我还关心引号和与号,或者是否有其他方法可以合并我的数据范围的地址或范围?

任何回应都将受到高度赞赏。谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.