Mam arkusz kalkulacyjny z komórkami w kolumnie A zawierającej kolory w formacie HEX. Czy możliwe jest automatyczne wypełnienie sąsiedniej komórki kolorem odpowiadającym wartości HEX?Wypełnij komórkę kolorem opartym na jego wartości HEX w programie Excel 2013
Z badań wykonanych do tej pory rozumiem, że VBA powinien najpierw przekonwertować ciąg HEX na jego korespondenta RGB, a następnie wypełnić kolor komórki wynikiem.
Np .: jeśli A1 zawiera wartość "7fcac3" (lub "# 7fcac3", ale nie sądzę, że funt jest wymagany), VBA powinien wypełnić sąsiadującą komórkę B RGB (127 202 152).
Poniżej znajduje się przykład tego, jak VBA może wyglądać, znaleźć (here). Problemem jest to, że dostaję "Błąd kompilacji: Nieprawidłowe postępowanie z zewnątrz" błąd w programie Excel 2013.
For i = 1 To LastRow
Sub SetHexColors()
Dim i, LastRow
LastRow = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To LastRow
Cells(i, "B").Interior.Color = HEXCOL2RGB(Cells(i, "A"))
Next
End Sub
Public Function HEXCOL2RGB(ByVal HexColor As String) As String
Dim Red As String, Green As String, Blue As String
HexColor = Replace(HexColor, "#", "")
Red = Val("&H" & Mid(HexColor, 1, 2))
Green = Val("&H" & Mid(HexColor, 3, 2))
Blue = Val("&H" & Mid(HexColor, 5, 2))
HEXCOL2RGB = RGB(Red, Green, Blue)
End Function
Wielkie dzięki, Mathieu
Teraz to również wynika z instrukcji autora, dzięki za wskazanie tego :) – Mathieu