Pivottable.pivotfields не обнаруживает никаких полей в случае внешнего источника данных - PullRequest
1 голос
/ 26 мая 2019

Я использую сводную точку, которая подключается к внешнему источнику данных.Когда я отображаю список полей, он показывает имя источника данных «Источник» в верхней части.Я пытаюсь перебрать поля с помощью PivotTable.PivotFields.Это не входит в петлю вообще.Желаемое поведение: он должен войти в цикл, а имена полей должны быть добавлены к строке.

For Each pvtField As PivotField In pvttable.PivotFields
mRetVal = mRetVal & pvtField.Name & "-" & pvtField.SourceName & "-" & pvtField.SourceCaption & ","
Next

1 Ответ

0 голосов
/ 08 июля 2019

Если вы хотите написать это в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...