Excel 使用vba将数据透视计算字段添加到报表
我有一张桌子。 我手动添加了3个计算字段f1、f2、f3。 我希望能够基于用户选择,使用vba构建透视报告 例如: 1.首先,用户选择要添加的“常规”字段(与将字段从透视表字段列表拖动到值区域相同) 这很有效Excel 使用vba将数据透视计算字段添加到报表,excel,pivot-table,calculated-field,vba,Excel,Pivot Table,Calculated Field,Vba,我有一张桌子。 我手动添加了3个计算字段f1、f2、f3。 我希望能够基于用户选择,使用vba构建透视报告 例如: 1.首先,用户选择要添加的“常规”字段(与将字段从透视表字段列表拖动到值区域相同) 这很有效 用户还选择要添加到报告值的计算字段f1 Sub AddCaclulatedFieldToColValues(fName As String) Dim objField As PivotField Set objField = GetCalculatedFi
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
端函数请注意。您不能将计算字段添加为行或列字段,只能添加为值字段(在表的主体中)。尝试手动操作,看看Excel的反应如何。@dmm当然可以。xlDataField不是xlColumnField。tx.不能将计算字段添加为行或列字段,只能添加为值字段(在表的主体中)。尝试手动操作,看看Excel的反应如何。@dmm当然可以。xlDataField不是xlColumnField。德克萨斯州。
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