Добрый день! Есть вопрос об автоматическом обновлении текста, внедрённого в диаграмму.
Имеем лист, ряд данных, ячейка с общим итогом этого ряда, на лист внедрена диаграмма с графиком этого ряда, в диаграмму рядом с графиком внедрён объект (прямоугольник) с текстом: «Общий итог равен <Итоговое значение ряда данных>».
При изменении ряда данных график на диаграмме изменяется автоматически без посторонней помощи. И это хорошо. Хочется, чтобы и текст во внедрённом объекте также менялся автоматически вместе с изменением данных в ячейке с общим итогом ряда.
Для начала сделал сперва «заготовку», путём записи макроса. Выделил прямоугольник, внедрённый в диаграмму, написал в нём «Общий итог: 3000». Получился следующий макрос:
Sub Макрос1()
ActiveSheet.ChartObjects("Диагр. 1").Activate
ActiveChart.Shapes("Rectangle 1").Select
Selection.Characters.Text = "Общий итог: 3000"
и т.д.
Всё идёт нормально
Теперь вставляю заготовку в макрос, расположенный в том самом листе, на котором находится диаграмма, и который должен запускаться при пересчёте данных на этом листе. Получается следующее:
Public Sub Worksheet_Calculate()
ActiveSheet.ChartObjects("Диагр. 1").Activate
ActiveChart.Shapes("Rectangle 1").Select
Selection.Characters.Text = "Общий итог: "&Range("O3").Value
и т. д.
Пытаемся запустить – и тут имеем проблему. Макрос выдаёт ошибку при попытке сделать диаграмму активной, т.е. в первой же строке кода. Сообщение об ошибке имеет такой вид:
«Rum-time error ‘1004’: Невозможно получить свойство ChartObjects класса Worksheet»
Типа не может отыскать диаграмму. Ума не приложу – чего ему надо? Ведь код не сам выдумывал, но аккуратно записал. Заранее благодарен за помощь.