Ich habe versucht, die Hintergrundfarbe einer Zelle schrittweise in Schwarz zu ändern, und ich habe festgestellt, dass die Range.Interior.Color-Methode eine Long zurückgibt scheinbar willkürlich. Wenn Sie sich die Dokumentation auf MSDN ansehen, gibt es fast nichts darüber, was diese Nummer darstellt. Gibt es eine Möglichkeit, den RGB-Wert von dieser Länge zurückzugeben. Ich brauche das Gegenteil der RGB-Funktion (rot, grün, blau).RGB-Werte von Range.Interior.Color (oder einer anderen Color-Eigenschaft) zurückgeben
Antwort
Kurze Antwort:
Es gibt keine Funktionalität für diese gebaut wird. Sie müssen Ihre eigene Funktion schreiben.
Lange Antwort:
Die lange, dass von der Interior.Color Eigenschaft zurückgegeben wird, ist eine Dezimal-Umwandlung der typischen hexadezimalen Zahlen, die wir zu sehen für Farben in HTML verwendet werden, z.B. "66FF66". Zusätzlich kann die Konstante xlNone (-4142) an die Set-Zelle übergeben werden, um keine Farbe im Hintergrund zu haben, jedoch sind solche Zellen aus der Get
-Eigenschaft mit Weiß RGB(255, 255, 255)
markiert. Wenn wir das wissen, können wir eine Funktion schreiben, die einen oder alle geeigneten RGB-Werte zurückgibt.
Glücklicherweise hat ein freundlicher Mr. Allan Wyatt genau das hier gemacht!
That "beliebige" Anzahl ist eine mathematische Kombination der RGB-Werte (R * 256^2 + G * 256 + B) und eine Umwandlung des hex Farbwertes in eine Dezimalzahl (Basis 16 auf Basis 10), je nachdem, auf welche Weise Sie es betrachten möchten. Nur verschiedene Basen. Unten ist die Methode, die ich in der XLAM-Add-Datei verwende, die ich für Excel geschrieben habe. Diese Methode hat sich oft bewährt. Ich habe die Dokumentation in meine Add-In-Datei eingefügt.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Function Color
' Purpose Determine the Background Color Of a Cell
' @Param rng Range to Determine Background Color of
' @Param formatType Default Value = 0
' 0 Integer
' 1 Hex
' 2 RGB
' 3 Excel Color Index
' Usage Color(A1) --> 9507341
' Color(A1, 0) --> 9507341
' Color(A1, 1) --> 91120D
' Color(A1, 2) --> 13, 18, 145
' Color(A1, 3) --> 6
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function Color(rng As Range, Optional formatType As Integer = 0) As Variant
Dim colorVal As Variant
colorVal = Cells(rng.Row, rng.Column).Interior.Color
Select Case formatType
Case 1
Color = Hex(colorVal)
Case 2
Color = (colorVal Mod 256) & ", " & ((colorVal \ 256) Mod 256) & ", " & (colorVal \ 65536)
Case 3
Color = Cells(rng.Row, rng.Column).Interior.ColorIndex
Case Else
Color = colorVal
End Select
End Function
gut zu sehen, dass Herr Wyatt die schnelle Methode der Farbe verwendet
R = C Mod 256
G = C \ 256 Mod 256
B = C \ 65536 Mod 256
, die ein Vielfaches schneller ist auf RGB als die hex str mit linken Mitte rechts , die einige
empfehlen Die andere Antwort funktionierte nicht für mich. Ich fand das:
R = C And 255
G = C \ 256 And 255
B = C \ 256^2 And 255
und es funktionierte einwandfrei.
- 1. Daten von einer anderen Ansicht zurückgeben Xamarin.iOS
- 2. Generator von einer Funktion zurückgeben
- 3. Zurückgeben eines Vektors oder Arrays von einer Funktion in C++
- 4. Zurückgeben einer Objektantwort von einer Funktion - Javascript
- 5. Python: überprüfen, ob Variable definiert ist und seinen Wert zurückgeben oder einen anderen Wert zurückgeben
- 6. Variablen von einer Funktion zurückgeben?
- 7. LPCWSTR von einer Funktion zurückgeben?
- 8. Kann keinen Wert von einer Funktion zurückgeben
- 9. leere Zeilen zurückgeben, wenn nicht in einer anderen Tabelle gefunden
- 10. Zurückgeben von Aggregatdaten auf einer Ressource
- 11. Ausgabe von einer MsBuild-Aufgabe zurückgeben?
- 12. JSON-Objekt von einer ASP.NET-Seite zurückgeben
- 13. Java: Zurückgeben einer Sammlung
- 14. Java 7 API-Design Best Practice - Array zurückgeben oder zurückgeben
- 15. Zurückgeben einer Karte von setIn - ImmutableJS
- 16. Einen Blick aus einem anderen Bereich zurückgeben
- 17. Ergebnis von einer anderen Aktivität als dem Empfang einer Aktivität zurückgeben
- 18. Zurückgeben einer Zeichenfolge von einem NSURLRequest
- 19. django - Formularfehler von einer generischen Anwendungsansicht zurückgeben
- 20. SQL - Zurückgeben einer Anzahl von 0
- 21. So rufen Sie die Funktion einer Aktivität von einer anderen Aktivität oder einem anderen Dienst auf?
- 22. Lesen von regulärer Datei: Blockieren oder weniger Daten zurückgeben?
- 23. Zurückgeben einer benutzerdefinierten Ausnahme
- 24. Zurückgeben einer 301-Weiterleitung von einer Controller-Aktion
- 25. Zurückgeben von Werten innerhalb einer JS-Funktion
- 26. String von einer C-Funktion zurückgeben
- 27. Konfigurieren von Ninject zum Zurückgeben einer Ergebnisliste
- 28. Zurückgeben einer Liste von Werten mit Json
- 29. Zurückgeben von ifstream in einer Funktion
- 30. Zurückgeben einer Schnittstelle von einem WCF-Dienst
Ihr und Harrys beide arbeiten. F.i. Roter Wert von 'RGB (50,100,200) = RGB (50,100,200) Mod 256' und roter Wert von 'RGB (50,100,200) = RGB (50,100,200) Und 255' – Mill