У меня есть некоторый код VBA, который запускает SQL-запрос, выгружает его в электронную таблицу Excel 2010 и обновляет 2 сводные таблицы на основе данных. У меня также есть 2 сводные диаграммы, основанные на сводных таблицах, и каждый раз, когда таблицы обновляются, форматирование на диаграммах теряется.
Я следовал инструкциям в Разделе 12.3 этой книги, в которых предлагалось создать собственный тип диаграммы на основе моих предпочтений форматирования и применить его к диаграммам, которые я хочу сохранить таким образом. Эти инструкции прекрасно работают, если я вручную изменяю данные, а затем вручную обновляю сводную таблицу - диаграммы остаются правильно отформатированными. Тем не менее, когда я выполняю этот код:
For Each pt In NewSheet.PivotTables
pt.RefreshTable
Next
форматирование сразу теряется.
Вот как выглядят данные раньше:
и мои тщательно составленные круговые диаграммы:
Как только я обновлю данные и обновлю таблицы:
Вот что я получаю:
Опять же, применение стиля пользовательской диаграммы сохранит форматирование, если оно выполнено вручную, но выполнение кода VBA каким-то образом сбрасывает тип пользовательской диаграммы.