我有数据透视表 . 我手动添加了3个计算字段 f1,f2,f3 . 我希望能够根据用户选择使用vba构建数据透视报告 .
例如:1 . 首先,用户选择要添加的“常规”字段(与将数据透视表字段列表中的字段拖动到值区域相同)
'Add a pivot Filed to graph as Y axis
Sub AddPivotFieldToColValues(fName As String)
Dim objField As PivotField
'Get pivot field
Set objField = GetPivotFieldByName(fName)
'Add to col list
objField.Orientation = xlColumnField
End Sub
Function GetPivotFieldByName(fName As String) As PivotField
Set GetPivotFieldByName = pivotTable.PivotFields(fName)
End Function
这有效 .
- 用户还选择要添加到报告值的计算字段 f1
Sub AddCaclulatedFieldToColValues(fName As String)
Dim objField As PivotField
Set objField = GetCalculatedFiledByName(fName)
objField.Orientation = xlColumnField
End Sub
Function GetCalculatedFiledByName(name As String) As PivotField
'Loop over all calculated fields
For Each f In pivotTable.CalculatedFields
'Test name
If (f.name = name) Then
'Return field
Set GetCalculatedFiledByName = f
'Field found - exit loop
Exit For
End If
Next
结束功能
设置字段Orientation时失败 .
运行时错误1004应用程序定义或对象定义的错误
我认为它可能是名称的东西,因为当手动将计算字段添加到值时,Excel名称正在改变 . 并在尝试重命名时(通过值字段设置 - >自定义名称),消息为:
数据透视表字段已经存在
请指教 .