[英]VBA Error with PivotTable: error 1004 range of object _Global failed
I am creating a PivotTable in VBA whose range is first calculated and then a table created from that. 我正在VBA中创建数据透视表,该数据透视表的范围首先被计算,然后从中创建一个表。 However, it's showing an error so can someone please correct it?
但是,它显示了错误,因此有人可以更正吗? It's showing:
它显示:
error 1004 range of object _Global failed.
错误_对象_Global的1004范围失败。
Sub Pivottable()
Dim NewRange As Range
Dim n As Long
Sheets("DUT1_Test51_excel").Select
n = Worksheets("DUT1_Test51_excel").Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count
Set NewRange = Range("A3" & ":" & "Q" & n)
ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=Range(NewRange), _
Version:=xlPivotTableVersion14). _
CreatePivotTable _
TableDestination:="DUT1_Test51_excel!R3C22", _
TableName:="PivotTable1", _
DefaultVersion:=xlPivotTableVersion14
Sheets("DUT1_Test51_excel").Select
Cells(3, 22).Select
ActiveWorkbook.ShowPivotTableFieldList = True
ActiveSheet.PivotTables("PivotTable1").AddDataField _
ActiveSheet.PivotTables("PivotTable1").PivotFields("20431"), "Average of 20431", xlAverage
With ActiveSheet.PivotTables("PivotTable1").PivotFields("time")
.Orientation = xlRowField
.Position = 1
End With
End Sub
try this (changed NewRange to a String) : 试试这个(将NewRange更改为String):
Sub Pivottable()
Dim NewRange As String
Dim n As Long
Sheets("DUT1_Test51_excel").Select
n = Worksheets("DUT1_Test51_excel").Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count
NewRange = "A3:Q" & n
ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=Range(NewRange), _
Version:=xlPivotTableVersion14). _
CreatePivotTable _
TableDestination:="DUT1_Test51_excel!R3C22", _
TableName:="PivotTable1", _
DefaultVersion:=xlPivotTableVersion14
Sheets("DUT1_Test51_excel").Select
Cells(3, 22).Select
ActiveWorkbook.ShowPivotTableFieldList = True
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1").PivotFields("20431"), "Average of 20431", xlAverage
With ActiveSheet.PivotTables("PivotTable1").PivotFields("time")
.Orientation = xlRowField
.Position = 1
End With
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.