Цветовые значения в Excel VBA - PullRequest
0 голосов
/ 24 мая 2018

Я немного искал этого и не могу найти ответ (или, возможно, ищу в неправильных местах: /)

Я пытаюсь найти ссылку на значения цвета, используемые в ExcelVBA.У меня есть несколько простых строк кода, которые меняют цвет фона в выбранной ячейке (в этом случае я использую простой макрос для вызова кода).

Я столкнулся с этим значением, которое было сгенерированорекордер макросов:

Selection.Interior.Color = 15773696

Я предпочитаю использовать RGB (эквивалент RGB в приведенном выше примере 128, 128, 128), и я пытался выяснить, откуда этот рекордер получил это значение.

Извинения, если это часто задаваемые вопросы.

TIA

1 Ответ

0 голосов
/ 24 мая 2018

Для преобразования


Option Explicit

Public Sub ConvertColor()

    Convert2RGB 15773696

End Sub

Public Sub Convert2RGB(ByVal c As Long)

    Dim R As Long, G As Long, B As Long

    R = clr Mod 256
    G = clr \ 256 Mod 256
    B = clr \ 65536 Mod 256

    'Or
    'R = clr And 255
    'G = clr \ 256 And 255
    'B = clr \ 256 ^ 2 And 255

    Debug.Print "R:" & R & " G:" & G & " B:" & B    '15773696 -> R:0 G:176 B:240

    Debug.Print RGB(R, G, B)                        'R:0 G:176 B:240 -> 15773696

End Sub

Из SO: Возвращает значения RGB из Range.Interior.Color (или любого другого свойства цвета)

... Число представляет собой математическую комбинацию значений RGB (B * 256 ^ 2 + G * 256 + R) и преобразования шестнадцатеричного значения цвета в десятичное число (от 16 до 16)10) ...

... десятичное преобразование типичных шестнадцатеричных чисел, которые мы привыкли видеть для цветов в html, например "66FF66" ...


Подробнее (внешняя ссылка): Определение значения RGB цвета

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