我正在尝试这种方法,使代码更加动态,以改变枢轴的数据源,但它不起作用。我试图使用给定的变量传递所有内容
Set wkb = Workbooks.Open("E:\QBR - EMEA\Refresh Files\Distri templates2\SOURCEDATA_EMEA Pack_MERGE.xlsb")
Set wks = wkb.Sheets("Data")
Set StartPoint = wks.Range("A2")
Set DataRange = wks.Range(StartPoint, StartPoint.SpecialCells(xlLastCell))
NewRange = wks.Name & "!" & _ DataRange.Address(ReferenceStyle:=xlR1C1)
ActiveSheet.PivotTables("PivotTable1").ChangePivotCache ActiveWorkbook. _ PivotCaches.Create( _ SourceType:=xlDatabase, _ SourceData:=NewRange)
答案 0 :(得分:0)
如果您在变量中有filename
,path
,recordcount
和sheetname
,那么您可以按如下方式更改代码:
ActiveSheet.PivotTables("PivotTable1").ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"'" & path & "\[" & filename & "]" & sheetname & "'!R1C1:R" & recordcount & "C25" _
, Version:=xlPivotTableVersion15)
您拥有的原始SourceData
("E:\QBR - EMEA\Refresh Files\Distri templates2\[SOURCEDATA_EMEA Pack_MERGE.xlsb]Data!R1C1:R500000C25"
)只是一个字符串 - 它可以被任何其他以正确格式结束的字符串替换。