Bestemmelse af RGB Værdi af en farve

Neil bruger farver meget i hans regneark. Han ved, at han kan generere en farve baseret på en numerisk RGB-værdi (og som forklaret i andre ExcelTips spørgsmål). Neil vil gerne gøre det modsatte-bestemme en RGB-værdi. Han undrer sig, hvis der er en måde at vende tilbage (via funktion eller makro) RGB-værdien af ​​farven bruges til at udfylde en celle.

Excel indeholder ikke en funktion til at gøre dette, men du kan oprette din egen brugerdefineret funktion. Den funktion, du bruger, afhænger af, hvad du vil rent faktisk er vendt tilbage til dit regneark. For eksempel, hvis du vil have den traditionelle seks tegn hex kode for RGB-farver returneret, ville du bruge følgende meget simple makro:

Funktion getRGB1 (rcell) As String
Dim sColor As String

sColor = Right ("000000" & Hex (rcell.Interior.Color), 6)
getRGB1 = Right (sColor, 2) & Mid (sColor, 3, 2) & Left (sColor, 2)
End Function

Denne makro ser på den indvendige farve til enhver celle du reference, sætter de sekskantede værdier for farven i den rigtige rækkefølge, og returnerer strengen til Excel. For at bruge funktionen skal du blot påberåbe det i regnearket, med en celle der refereres til på denne måde:

= GetRGB1 (B4)

Du kan ikke ønsker den traditionelle hex koder for de RGB-farver, dog. Hvis du ønsker at få de decimale værdier for hver af de farver, så de følgende makro afkast at:

Funktion getRGB2 (rcell) As String
Dim C så længe
Dim R så længe
Dim G så længe
Dim B så længe

C = rcell.Interior.Color
R = C Mod 256
G = C \ 256 Mod 256
B = C \ 65536 Mod 256
getRGB2 = "R =" & R & ", G =" & G & ", B =" & B
End Function

Påberåbt sig samme måde som getRGB1 makro, denne version returnerer en streng som "R = 255, G = 204, B = 0". Du kan også ændre makroen yderligere, så den returnerer en enkelt værdi, baseret på en parameter du angiver:

Funktion getRGB3 (rcell Som Range, Valgfri opt As Integer) så længe
Dim C så længe
Dim R så længe
Dim G så længe
Dim B så længe

C = rcell.Interior.Color
R = C Mod 256
G = C \ 256 Mod 256
B = C \ 65536 Mod 256

Hvis opt = 1 Så
getRGB3 = R
ElseIf opt = 2 Så
getRGB3 = G
ElseIf opt = 3 Så
getRGB3 = B
Andet
getRGB3 = C
End hvis
End Function

Hvis du vil bruge makroen, skal du blot tilføje en anden parameter til funktionen bruges i dit regneark, som præciserer, hvad du vil have:

= GetRGB3 (B4,1)

Hvis den anden parameter er 1, så funktionen returnerer kun den røde værdi. Hvis du angiver en anden parameter på 2, så den grønne værdi returneres, og 3 returnerer den blå værdi. Enhver anden værdi for den anden parameter (eller hvis du udelader det helt) returnerer den fulde decimal værdi af interiøret farve.

Hvis du ikke ønsker at gå den vej at skabe en makro, eller hvis du ønsker at bestemme farver i mere end bare et Excel-regneark, kan du overveje en tredjepart værktøj. En, der ser interessant er Instant Eyedropper, som er gratis. Du kan finde mere information om det her:

http://instant-eyedropper.com

ExcelTips er din kilde til omkostningseffektiv Microsoft Excel træning. Dette tip (10179) gælder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finde en version af dette tip til båndet grænseflade Excel (Excel 2007 og nyere) her: Bestemmelse af RGB Værdi af en farve.


© 2020 Zajacperrone.com | Contact us: webmaster# zajacperrone.com