Проверьте, существует ли поле данных таблицы PT VBA - PullRequest
0 голосов
/ 27 августа 2018

enter image description here

Мой код работает отлично ... но каким-то образом он добавляет поле данных при каждом запуске. Я пытался проверить его, если он существует с If pf.Orientation = xlDataField = True Then...("Don't add xlDataField")... Все еще нет результатов.

Я почти уверен, что упускаю что-то важное здесь, иначе код работает хорошо. Есть ли способ не добавлять другое поле, если оно уже существует?

Sub Import()

    Dim ws As Worksheet, pvtCache As PivotCache
    Dim wsp As Worksheet
    Dim pf As PivotField, pt As PivotTable

    Set wsp = Sheets("Pivot")
    Set pt = wsp.PivotTables("PivotTable")

    ActiveWorkbook.RefreshAll

    Sheets("TP_Coois").Cells.Replace ",", "", xlPart
    Set pf = pt.PivotFields("Sales")

    If pf.Orientation = xlDataField = True Then  '***I believe here is something wrong***
        pt.PivotCache.Refresh
    Else
        With pf
            .Orientation = xlDataField
            .Function = xlSum
        End With

        pt.PivotCache.Refresh
    End If

End Sub

Любая помощь приветствуется

1 Ответ

0 голосов
/ 27 августа 2018

Попробуйте изменить условие с:

If pf.Orientation = xlDataField = True Then

К этому:

If pf.Orientation = xlDataField Then
...