我想创建一个带有动态范围的数据透视表,该动态范围引用另一个选项卡。在评论“ define pivot cache ”之后,我不断收到“运行时错误'13' - 输入不匹配”。有什么建议吗?
Sub InsertExportPivotTables()
'Declare Variables
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
Dim LastRow As Long
'*************Actions by study
'Insert a New Blank Worksheet for Actions by Study
Application.DisplayAlerts = False
Worksheets("Actions by Study").Delete 'deletes worksheet if already exists
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "Actions by Study"
Application.DisplayAlerts = True
Set PSheet = Worksheets("Actions by Study")
Set DSheet = Worksheets("export")
'Define Data Range
LastRow = DSheet.Range("A" & DSheet.Rows.Count).End(xlUp).Row
Set PRange = DSheet.Range(DSheet.Cells(6, 1), DSheet.Cells(LastRow, "U"))
'Define Pivot Cache
Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRange, Version:=xlPivotTableVersion14)
'Insert Blank Pivot Table
Set PTable = PCache.CreatePivotTable(TableDestination:=PSheet.Cells(1, 1), _
TableName:="ActionsbyStudy01", DefaultVersion:=xlPivotTableVersion14)
End Sub
答案 0 :(得分:0)
您可以传递 PivotCaches.Create 指定范围,但不能传递范围对象。
如果 SourceType 不是 xlExternal ,则需要 SourceData 参数。 它应该传递一个范围(当 SourceType 是 xlConsolidation 时 或 xlDatabase )或Excel工作簿连接对象(何时 SourceType 是 xlExternal )。通过Range时,建议使用 使用字符串指定工作簿,工作表和单元格 范围,或设置命名范围并将名称作为字符串传递。
传递 Range 对象可能会意外导致“类型不匹配”错误。
(Source更多信息)