【发布时间】:2016-05-16 21:31:55
【问题描述】:
我在 Spreadsheetguru 上找到了此代码,但我在编辑代码时遇到了问题。
Sub CreatePivotTable()
'PURPOSE: Creates a brand new Pivot table on a new worksheet from data in the ActiveSheet
'Source: www.TheSpreadsheetGuru.com
Dim sht As Worksheet
Dim pvtCache As PivotCache
Dim pvt As PivotTable
Dim StartPvt As String
Dim SrcData As String
'Determine the data range you want to pivot
SrcData = ActiveSheet.Name & "!" & Range("A1:R100").Address(ReferenceStyle:=xlR1C1)
'Create a new worksheet
Set sht = Sheets.Add
'Where do you want Pivot Table to start?
StartPvt = sht.Name & "!" & sht.Range("A3").Address(ReferenceStyle:=xlR1C1)
'Create Pivot Cache from Source Data
Set pvtCache = ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=SrcData)
'Create Pivot table from Pivot Cache
Set pvt = pvtCache.CreatePivotTable( _
TableDestination:=StartPvt, _
TableName:="PivotTable1")
End Sub
为什么我无法将 SrcData 定义为 Worksheets("SHEETNAME").Range("A1:A100")?它返回类型 13 错误:不匹配。我尝试在线查找答案,大多数示例都引用了 ActiveSheet.Range 的 SrcData 而不是定义的工作表。
谢谢!
如果您能向我展示一个示例枢轴如何用于此工作表上的工作表(“PivotExp”),那也会有很大帮助。http://imgur.com/TShQ1ls
非常感谢!
【问题讨论】:
-
SrcData被声明为字符串,而不是范围。最好使用范围地址作为数据透视表的来源,而不是范围对象,因此我建议您保留代码原样。 -
您需要提供地址为字符串:
SrcData = "SHEETNAME!A1:A100"