我是新成员,我找不到任何特定的解决方案来处理我遇到的问题。我得到运行时错误1004:
应用程序定义或对象定义错误
尝试添加cubefield值时。错误:.Orientation = xlDataField
它有时工作,但我主要得到这个错误,并试图找到它的永久修复。我使用的是Excel 2016版本。
这是我正在使用的VBA代码:
Sub UnhideALL()
Sheets("Availability_Details").Select
With TROCUserForm
.Top = Int(((Application.Height / 2) + Application.Top) - (.Height / 2))
.Left = Int(((Application.Width / 2) + Application.Left) - (.Width / 2))
.Show False
End With
Application.Wait (Now + TimeValue("0:00:01"))
Range("M17").Select
With ActiveSheet.PivotTables("QuotaAvail").CubeFields("[Measures].[Sum of Booked]")
.Orientation = xlDataField
.Position = 2
End With
With ActiveSheet.PivotTables("QuotaAvail").CubeFields("[Measures].[Sum of Build]")
.Orientation = xlDataField
.Position = 3
End With
With ActiveSheet.PivotTables("QuotaAvail").CubeFields("[Measures].[Available_Y_N]")
.Orientation = xlDataField
.Position = 4
End With
With ActiveSheet.PivotTables("QuotaAvail").CubeFields("[Measures].[Tech_Net_to_85]")
.Orientation = xlDataField
.Position = 5
End With
With ActiveSheet.PivotTables("QuotaAvail").CubeFields("[Measures].[Tech_Net_to_75]")
.Orientation = xlDataField
.Position = 6
End With
With ActiveSheet.PivotTables("QuotaAvail").CubeFields("[Measures].[Tech_Net_to_65]")
.Orientation = xlDataField
.Position = 7
End With
Range("G9").Select
ActiveWorkbook.ShowPivotTableFieldList = False
ActiveSheet.PivotTables("QuotaAvail").PivotFields("[Measures].[Sum of Booked]") _
.Caption = "Bkd"
ActiveSheet.PivotTables("QuotaAvail").PivotFields("[Measures].[Sum of Build]"). _
Caption = "Blt"
ActiveSheet.PivotTables("QuotaAvail").PivotFields("[Measures].[Available_Y_N]") _
.Caption = "Avail"
ActiveWorkbook.ShowPivotTableFieldList = False
Range("G9").Select
Call TechNet85Cond
Call TechNet75Cond3
Call TechNet65Cond3
Call Wholenumber
Unload TROCUserForm
End Sub
答案 0 :(得分:0)
我猜测如果使用.AddDataField方法将度量添加到“值”区域,问题将得到解决。启动宏录制器并手动添加字段,然后检查生成的代码以获取语法。对于我的示例数据,它看起来像这样:
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( _
"PivotTable1").CubeFields("[Measures].[ Value]"), " Value"
我想你必须首先检查这些度量是否已经存在于数据透视表中,或者可能在那里抛出一个ON ERROR RESUME NEXT来处理这种情况。
ActiveSheet.PivotTables(“PivotTable1”)。AddDataField ActiveSheet.PivotTables(_ “PivotTable1”)。CubeFields(“[Measures]。[Value]”),“Value”
答案 1 :(得分:0)
谢谢。看起来像原始字段,预订和构建导致问题。我创建了一个度量预定的总和(名为:Sum_of_Booked)并构建而不是使用该度量而不是原始字段。