|
大家好, 偶用记录宏记下设置数据透视表的过程, 得如下语句:
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"定货!R2C1:R445C8").CreatePivotTable TableDestination:="", TableName:= _
"数据透视表1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("数据透视表1").PivotFields("周次")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("数据透视表1").PivotFields("配件编码")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("数据透视表1").PivotFields("下单日期")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables("数据透视表1").AddDataField ActiveSheet.PivotTables("数据透视表1" _
).PivotFields("进货量"), "求和项:进货量", xlSum
但运行这个宏时, 在第一句时就出现如下错误:
运行时错误'1004'
应用程序定义或对象定义错误.
偶想可能是需引用某个对象, 具体操作不知, 请哪位哥哥告知.
偶主要是想用VBA来写一个宏, 以便能生成数据透视表.
有位网友这样回复我:
我记得XP以下的版本不支持这句:DefaultVersion:=xlPivotTableVersion10,可以删除,2000以下的版本可能也不支持PivotCache.
参考:
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Myrange").CreatePivotTable TableDestination:=Sheets("sheet3").Range("A1"), TableName:="XXXX"
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:="dtrange", TableDestination:=Sheets("sheet3").Range("A1"), TableName:="DTtable"
SourceData数据来源和其他参数都可以设定为区域名称,区域命名可以在程序中进行,这样避免对数据来源的绝对引用。
但第一句话运行时也会出现同样的问题. 有经验的哥哥告诉偶啊:( |
|