Если вы хотите написать это в VBA, вот некоторая помощь.
В VBA вы обычно должны разделять объявления переменных следующим образом:
Dim pvtField As PivotField
For Each pvtField In pvttable.PivotFields
mRetVal = mRetVal & pvtField.Name & "-" & pvtField.SourceName & "-" & pvtField.SourceCaption & ","
Next pvtField
Если ваша сводная таблица основана на внешнем источнике (OLAP), то вы также можете просмотреть цикл CubeFields
, который имеет несколько различных свойств:
Dim pvtCubeField as CubeField
For Each pvtCubeField In pvttable.CubeFields
mRetVal = mRetVal & pvtCubeField.Name & "-" & pvtCubeField.Value & "-" & pvtCubeField.Caption & ","
Next pvtCubeField
Поскольку CubeFields
из источника OLAP и PivotFields
из сводной таблицы связаны, вы можете выбрать PivotFields
еще раз:
Dim pvtCubeField as CubeField, pvtField As PivotField
For Each pvtCubeField In pvttable.CubeFields
For Each pvtField In pvtCubeField.PivotFields
mRetVal = mRetVal & pvtField.Name & "-" & pvtField.SourceName & "-" & pvtField.SourceCaption & ","
Next pvtField
Next pvtCubeField