VBA - можно ли кодировать оператор If / Then, если обрезанный текст меняет цвет с черного на белый - PullRequest
0 голосов
/ 20 февраля 2020

Текущий код ниже не работает, потому что он находит RsnChng всегда = "Причина".

Изначально, когда я думал, что всплывает термин "Причина", я подумал, что можно просто кодировать для этого, но на самом деле он всегда там просто не виден, потому что он окрашен в черный цвет так же, как фон, поэтому вы его не видите, - цвет текста для него становится белым, когда ему нужно выполнить действие.

Так есть ли способ, которым я мог бы добавить следующий код, чтобы определить, какой цвет текста белый, а затем выполнить код?

RsnChng = Trim(HE.CurrentHost.TextRC(20, 2, 6))
If RsnChng = "Reason" Then
    HE.CurrentHost.PutText "Finished by MPT055", 20, 20
    Utilities.PressKey "ENTER", False, UseIBM1, "6", , "YES", "BUTTONS"
End If

Заранее спасибо, Майк

1 Ответ

0 голосов
/ 20 февраля 2020

Вы можете использовать следующий код для получения цвета шрифта:

Function GetFontColor(Target As Range) As Integer
    GetFontColor = Target.Font.ColorIndex
End Function

Затем используйте то же самое в условии IF.

If GetFontColor(Range("A1"))=2 then 
...
End If

И если вы хотите проверить цвет ячейки, используйте следующие

If Range("A1").Interior.Color = RGB(255, 255, 255) Then
...
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...