Если с Find не работает как задумано - PullRequest
2 голосов
/ 28 марта 2012

Я очень новичок в VBA и создал диаграмму на основе Macro Recorder в Excel 2007. У меня возникли некоторые проблемы с оператором If, который я ожидал найти значение FALSE в диапазоне ячеек и изменить цвет маркера на моем графике.Я не получаю желаемых результатов, но все маркеры переходят в состояние «Остальное».Вот фрагмент кода для справки:

Dim rSeries As Range
Dim MyChart As Chart

Set rSeries = Sheets("Data").Range("I24:I39")
Set MyChart = Sheets("Sheet1").ChartObjects("PT_Schedule").Chart
With MyChart
    If rSeries.Find("FALSE") Then
        .SeriesCollection(8).MarkerForegroundColor = RGB(255, 255, 0)
        .SeriesCollection(8).MarkerBackgroundColor = RGB(255, 255, 0)
    Else
        .SeriesCollection(8).MarkerForegroundColor = RGB(255, 0, 0)
        .SeriesCollection(8).MarkerBackgroundColor = RGB(255, 0, 0)
    End If
End With

Может ли кто-нибудь объяснить, почему любое значение ячейки FALSE не соответствует критериям и на какой код следует изменить?

Заранее спасибо!

1 Ответ

0 голосов
/ 28 марта 2012

метод Find () возвращает Range, а не Boolean. Вы должны убедиться, что возвращаемый диапазон не равен нулю (ничего в VBA)

If Not rSeries.Find("FALSE") Is Nothing Then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...