Используйте Font.Color в качестве условия в операторе If - PullRequest
1 голос
/ 26 апреля 2019

В настоящее время я пытаюсь использовать цвет шрифта в качестве условия для проверки в операторе if. Это кажется невероятно простым, но VBA, похоже, не в состоянии это сделать.

Я не могу показать свой реальный код, поскольку в нем есть информация, являющаяся частной собственностью, но я даже попробовал простую версию своего кода безрезультатно. Этот код показан ниже.

Sub Testing()

Cells(1,1).Font.Color = -16776961
If Cells(1,1).Font.Color = -16776961 Then
     Cells(1,3) = "Worked!"
Else
     Cells(1,3) = "Didn't Work!"
End If

End Sub

Первая строка кода фактически меняет цвет шрифта или ячейки A1 на красный. Однако условное утверждение по какой-то причине не работает.

Ответы [ 2 ]

3 голосов
/ 26 апреля 2019

Вы должны использовать RGB так:

Cells(1,1).Font.Color = RGB(255, 0, 0)
If Cells(1,1).Font.Color = RGB(255, 0, 0) Then
     Cells(1,3) = "Worked!"
Else
     Cells(1,3) = "Didn't Work!"
End If

3 голосов
/ 26 апреля 2019

Вместо этого используйте функцию RGB .(Не уверен, откуда вообще взято отрицательное значение?)

Sub Testing()

Cells(1, 1).Font.Color = RGB(255, 0, 0)
If Cells(1, 1).Font.Color = RGB(255, 0, 0) Then
     Cells(1, 3) = "Worked!"
Else
     Cells(1, 3) = "Didn't Work!"
End If

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