我有一张10张的工作簿。我尝试通过宏自动在每张纸上创建数据透视表。我为第一张名为Timetables的表格记录了宏
以下是脚本的一部分:
ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal, SourceData:= _
ActiveWorkbook.Connections("WorksheetConnection_Timetables!$A$1:$D$382"), _
Version:=xlPivotTableVersion15).CreatePivotTable TableDestination:= _
"Timetables!R1C5", TableName:="PivotTable1", DefaultVersion:= _
xlPivotTableVersion15
由于每张纸上使用的每个数据范围都不同。我试图为该范围创建一个变量。
Dim ws as Worksheet
Set ws = Activesheet
Dim wr As Range
Set wr = Range("A1", Range("D1").End(xlDown))
问题是如何用脚本中的变量替换范围时间表!$ A $ 1:$ D $ 382?
答案 0 :(得分:2)
您不需要范围,您需要一个文本字符串作为数据透视表源数据参数的参数。
Dim lastrow As Long
Dim ws As Worksheet
Dim TheRange As String
Set ws = ThisWorkbook.Sheets("WorksheetConnection_Timetables")
lastrow = ws.Cells(Rows.Count, 1).End(xlUp).Row
TheRange = "WorksheetConnection_Timetables!$A$1:$D$" & lastrow
然后您可以将其用作数据源参数:
..._
ActiveWorkbook.Connections(TheRange), _
...