Группа сводной таблицы не работает после Refre sh (а затем не работает) - PullRequest
0 голосов
/ 06 мая 2020

Я столкнулся с очень странной проблемой. У меня есть сводная таблица, сгруппированная по дате. Когда базовая таблица обновляется (через соединение) и сводная таблица иногда обновляется, группировка прерывается. Я подтвердил, что все данные имеют правильно отформатированные даты, так что проблема не в этом.

Вот действительно странная часть. Если я попытаюсь перегруппироваться, я получаю сообщение об ошибке, что я не могу перегруппироваться по этому выбору. Затем я вручную обновляю sh. Я пытаюсь сгруппировать снова, , и это работает!

Отлично - я могу имитировать этот процесс в VBA, верно?

Я написал следующий код:

' Get Data Objects
Set pt = Worksheets("Service Anniv").PivotTables("Pivot_Anniversaries")
Set pf = pt.PivotFields("Service Awd Dt")

' Refresh the table
pt.RefreshTable

' Force the regrouping since sometimes it dissapears
pf.LabelRange.Cells(2, 1).Group _
    Start:=True, End:=True, Periods:=Array(False, False, False, _
    False, True, False, False)

VBA попадает в метод Group - и ошибка «не удается сгруппировать». Странность нарастает. Останавливаю выполнение с помощью «Отладки». Переместите стрелку выполнения в строку RefreshTable и перезапустите выполнение. Таблица обновится еще раз, и теперь группа работает. Точно так же, если после выполнения прекращается отладка, я обновляю sh таблицу вручную в Excel, а затем перезапускаю выполнение, Группа работает.

Я попытался поставить две RefreshTables или даже обновить PivotCache, чтобы попытаться эмулировать принудительное повторное включение sh, и это не помогло. Я попытался добавить ожидание в 1 секунду после refre sh, и это не помогло. Это похоже на то, что выполнение должно быть полностью остановлено, чтобы второй refre sh работал.

Есть идеи, как решить эту проблему? Я использую Excel 2013

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...