8 Stimmen

Färben Sie eine Zelle basierend auf ihrem HEX-Wert in Excel 2013 aus

Ich habe eine Tabelle mit Zellen in Spalte A, die Farben in ihrem HEX-Format enthalten. Ist es möglich, die benachbarte Zelle automatisch mit der Farbe zu füllen, die dem HEX-Wert entspricht?

Basierend auf bisherigen Recherchen verstehe ich, dass VBA zuerst den HEX-String in seinen RGB-Wert umwandeln sollte und dann die Zelle mit dem Ergebnis füllen sollte.

Zum Beispiel: Wenn A1 den Wert "7fcac3" enthält (oder "#7fcac3", aber ich glaube, das Doppelkreuz ist nicht erforderlich), sollte der VBA die benachbarte Zelle B mit RGB (127,202,195) füllen.

Im Folgenden finden Sie ein Beispiel, wie der VBA aussehen könnte, gefunden (hier). Das Problem ist, dass ich in Excel 2013 einen "Kompilierungsfehler: Ungültig außerhalb des Verfahrens"-Fehler erhalte.

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 

Vielen Dank, Mathieu

3voto

Mark Balhoff Punkte 2311

Die erste Codezeile:

For i = 1 To LastRow

ist nicht innerhalb eines Subs oder einer Function. Es sieht so aus, als wäre das eine Kopie einer Zeile, die Sie bereits im Sub SetHexColors haben, daher würde ich erwarten, dass Sie diese erste Zeile nur auskommentieren oder löschen müssen. Die einzigen Codezeilen, die außerhalb von Subs und Functions stehen können, sind Variablendeklarationen und Dinge wie Option-Anweisungen (z. B. Option Explicit)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X