Я хочу получить значение цвета HEX из цвета ячейки (диапазона).
Следующие ссылки дают неправильные результаты.
https://stackoverflow.com/a/24216193/13075931
https://stackoverflow.com/a/50479544/13075931
Подробное объяснение вы можете найти по следующей ссылке.
Заранее спасибо.
Обновлено: спасибо за хорошие ответы, но я нашел лучшие решения по следующей ссылке.
https://excelribbon.tips.net/T010180_Determining_the_RGB_Value_of_a_Color.html


Это обеспечивает шестнадцатеричные значения RGB в правильном порядке и с двумя цифрами каждое (т. е. для каждого цвета):
Function GetHexColor(cel As Range) As String
If cel.Cells.Count <> 1 Then Exit Function
Dim lColorNum As Long, iRed As Integer, iGreen As Integer, iBlue As Integer
lColorNum = cel.Interior.Color
iRed = lColorNum And 255
iGreen = lColorNum \ 256 And 255
iBlue = lColorNum \ 256 ^ 2 And 255
GetHexColor = Right$("0" & Hex(iRed), 2) & Right$("0" & Hex(iGreen), 2) & Right$("0" & Hex(iBlue), 2)
End Function
... возвращая 750D02 и AE0F21 для двух цветов из вашего связанного «подробного объяснения».
Проще
Function GetColorInHex(cc As Range) As String
Dim s As String
s = Hex(cc.Cells(1).Interior.Color)
s = String(6 - Len(s), "0") & s
GetColorInHex = Right(s, 2) & Mid(s, 3, 2) & Left(s, 2)
End Function
Первая ссылка дает частичное объяснение обсуждения: значение RGB в VBA форматируется иначе, чем значение HEX в палитре цветов. В VBA буква B является наиболее значимой частью. В ответе, указанном по второй ссылке, есть ошибка; Я просто оставил там комментарий.