Диаграмма не будет обновляться в Excel (2007) - PullRequest
18 голосов
/ 04 февраля 2011

У меня есть документ Excel (2007) с диаграммой (кластеризованный столбец), которая получает свои ряды данных из ячеек, содержащих вычисленные значения

Расчетные значения никогда не изменяются напрямую, а только в результате других ячеек влист меняется

Когда я меняю другие ячейки на листе, ячейки Серии данных пересчитываются и показывают новые значения - но Диаграмма, основанная на этом Серии данных, отказывается обновляться автоматически

Я могуполучить диаграмму для обновления, сохранив / закрыв или переключив одну из настроек (например, изменив направление оси x / y и затем вернув ее обратно), или повторно выбрав ряд данных

Каждое найденное мной решениеонлайн не работает

  • Да, у меня установлен автоматический расчет
  • Ctrl + Alt + F9 все прекрасно обновляется, КРОМЕ этого графика
  • Я пересоздал графикнесколько раз и на разных компьютерах
  • Я пробовал VBA-сценарии, такие как:

    Application.Calculate
    Application.CalculateFull
    Application.CalculateFullRebuild
    ActiveWorkbook.RefreshAll
    DoEvents

Ничто из этого не обновляет и не обновляет диаграмму

Я замечаю, что если я наберу в своей серии данных действительные числа вместо вычислений, то обновитдиаграмма - это как если бы Excel не хотел распознавать изменения в расчетах

Кто-нибудь сталкивался с этим раньше или знает, что я мог бы сделать, чтобы решить проблему?Спасибо

Ответы [ 34 ]

0 голосов
/ 07 апреля 2017

Для меня макрос не обновляет ось X для всех серий, а только первую.Решение, которое я нашел, состояло в том, чтобы обновить ось X для всех серий, а затем она обновилась (также у меня был код для изменения формата оси X, но я не думаю, что это была проблема).1002 *

Полный макрос;

Sub TEST()
'
' TEST Makro
'
ActiveSheet.ChartObjects("Diagram 7").Activate
ActiveChart.Axes(xlCategory).Select
Selection.TickLabels.NumberFormat = "@"
ActiveSheet.ChartObjects("Diagram 7").Activate
ActiveChart.SeriesCollection(1).XValues = "={""""}"
ActiveChart.SeriesCollection(1).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(2).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(3).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(4).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(5).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(6).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(7).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(8).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.Axes(xlCategory).Select
ActiveChart.Axes(xlCategory).TickMarkSpacing = 730
ActiveChart.Axes(xlCategory).TickLabelSpacing = 730
End Sub
0 голосов
/ 28 ноября 2014

Мои два цента за эту проблему - у меня была похожая проблема с диаграммой в отчете Access 2010.Я динамически создавал querydef, устанавливая его в качестве источника строк в моем отчете, а затем пытался перебрать каждую серию и установить свойства каждой серии.В конечном итоге мне пришлось разбить создание запроса и настройки свойства на отдельные подпрограммы.Кроме того, я положил

SendKeys ("{DOWN}")
SendKeys ("{UP}")

внизу каждого из двух сабов.

0 голосов
/ 15 сентября 2017

Чтобы обновить диаграмму, просто поместите Sheets («Лист1»). Рассчитайте в своей подпроцедуреЕсли у вас есть больше диаграмм на разных вкладках, просто создайте цикл рабочего листа.

0 голосов
/ 13 сентября 2012

Я обнаружил, что при создании диаграммы на отдельной рабочей таблице будут применяться любые обновления НТН

...