Excel使用变量创建数据透视表

时间:2017-12-19 00:53:28

标签: excel vba excel-vba

我有一张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?

1 个答案:

答案 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), _
...