У меня есть книга Excel, в которой я создаю сводную диаграмму для VBA из существующей сводной таблицы.Этот график создается как новый рабочий лист.
Пока результат соответствует ожидаемому.Но когда я перехожу к сгенерированному графику и хочу что-то изменить в редакторе полей, я получаю сообщение об ошибке:
Отчет сводной таблицы был сохранен без исходных данных.Выберите «Обновить данные», чтобы обновить отчет. (перевод с немецкого)
После этого я могу работать в полевом редакторе.После долгого нервного сеанса отладки я понял, что мой код ведет себя по-разному, когда проходит через него с помощью отладчика.
- При нормальном выполнении кода .Refresh, по-видимому, не действует.
- При пошаговом выполнении кода с помощью отладчика .Refresh работает так, как ожидалось, и я не получаю сообщение об ошибке в редакторе полей.
Я пробовал это в Excel 2010 и 2013. Обе версии показывают одинаковое поведение.
Charts.Add
chartSheetName = dqSource & "_PIVOT_CHART"
With ActiveChart
.Location where:=xlLocationAsNewSheet , Name:=chartSheetName
.HasTitle = True
.ChartTitle.Select
.ChartTitle.Text = "My chart title"
.Refresh ' <-- This is the suspect
End With