我有数据透视表。 我手动添加了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
结束职能
设置字段方向时失败。
运行时错误1004应用程序定义的错误或对象定义的错误
我认为它可能是名称的东西,因为当手动将计算字段添加到值时,Excel名称正在改变。当尝试重命名(通过值字段设置 - >自定义名称)时,消息为:
数据透视表字段已存在
请建议。