Перестало работать программное позиционирование диаграмм VBA - PullRequest
0 голосов
/ 25 июня 2009

Я использовал эту процедуру, вызванную событием 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: Я подтвердил, что код по-прежнему работает, как и ожидалось, на других машинах, так что похоже, что моя машина была каким-то странным образом затронута каким-то "действием", которое я сделал , Мне все еще любопытно узнать, что это за «вещь», хотя может быть.

1 Ответ

0 голосов
/ 25 июня 2009

Ну, я разобрался, но не совсем уверен, как. Я копался в объектах соединения, и это, казалось, само собой исправлялось.

Excel 1 - 0 Лунатик

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...