Мой код VBA для обновления диапазона вторичных осей на всех графиках рабочего листа работает только для некоторых графиков. После запуска макроса отображается сообщение «Метод« Оси »объекта« _Chart »failed», при этом обновляются только некоторые из графиков на этом листе. В чем проблема?Код VBA работает только для некоторых диаграмм
Sub Macro1()
Dim objChart As ChartObject, lower As Double, upper As Double
lower = Application.InputBox(prompt:="Enter lower bound", Type:=1)
upper = Application.InputBox(prompt:="Enter upper bound", Type:=1)
For Each objChart In Sheets("Summary").ChartObjects
With objChart.Chart.Axes(xlValue, xlSecondary)
.MinimumScale = lower
.MaximumScale = upper
End With
Next objChart
End Sub
Не уверен, что вызывает ошибку, но вы можете извлечь тело цикла в свою собственную параметризованную процедуру * и обрабатывать ошибки времени выполнения *, так что, если первая итерация взорвется, вы все еще выполняете итерацию и пытаетесь с остатком «ChartObjects» 'коллекция. –
Какие типы графиков у вас есть на этом * Сводном листе? У всех есть вторичная ось значений? –
Я не могу сказать только из кода, но попробуйте добавить 'debug.print objChart.name' внутри цикла и выполнить код с помощью F8. Посмотрите, какие графики обновляются, а какие нет, может быть, есть что-то другое в отношении тех, кто этого не делает. –