Я использовал эту процедуру, вызванную событием Worksheet_Change
, чтобы отобразить выбранный график и переместить все остальные графики в положение удержания за пределами экрана.
Sub shuffleCharts(chartName As String)
Dim analysisChart As ChartObject
For Each analysisChart In ActiveSheet.ChartObjects
With analysisChart
.Left = 1575
End With
Next analysisChart
With ActiveSheet.ChartObjects(chartName)
.Left = 15
End With
End Sub
Это работало до 20 минут назад, но теперь отказывается перемещать графики. Он не выдает никаких ошибок, и все объекты и переменные кажутся правильными при проверке в окне Locals.
Единственное, что я мог сделать, чтобы каким-то образом повлиять на графики, - это эксперименты с способами выделения источников данных серии графиков в другом модуле. Это было на очень ранней стадии, и я изучал различные методы и свойства, поскольку я не очень часто манипулирую графиками.
Я перезапустил Excel и проверил вчерашнюю версию, которая работала при сохранении, но результат тот же. Я еще не перезагружен, поскольку на моей машине запущена база данных ошибок, которую я предпочел бы подождать до обеденного перерыва. Редактировать: Все равно надоело и перезагружался - проблема все еще существует. *
Есть идеи, что могло вызвать это, и как я мог бы заставить его работать снова?
Редактировать: Это становится страннее. Вызывая процедуру вручную следующим образом:
Call shuffleCharts("Chart 1")
процедура все еще работает как ожидалось. Однако, если я объявлю строку и передам ее в качестве имени диаграммы ...
Dim myChart as String
myChart = "Chart 1"
Call shuffleCharts(myChart)
... тогда это не работает. WTF?
Редактировать 2: Я подтвердил, что код по-прежнему работает, как и ожидалось, на других машинах, так что похоже, что моя машина была каким-то странным образом затронута каким-то "действием", которое я сделал , Мне все еще любопытно узнать, что это за «вещь», хотя может быть.