Stavo cercando di modificare in modo incrementale il colore di sfondo di una cella in nero, e ho scoperto che il metodo Range.Interior.Color restituisce un Long che è apparentemente arbitrario. Guardando la documentazione su MSDN, non c'è quasi nulla su ciò che rappresenta questo numero. C'è un modo per restituire il valore RGB da questo lungo. Ho effettivamente bisogno del contrario della funzione RGB (rosso, verde, blu).Restituisce i valori RGB da Range.Interior.Color (o qualsiasi altra proprietà Color)
risposta
Risposta breve:
Non v'è alcun costruito in funzione di questo. Devi scrivere la tua funzione.
lungo Risposta:
Il tempo che viene restituito dalla proprietà Interior.Color è una conversione decimale dei numeri esadecimali tipici che siamo abituati a vedere per i colori in HTML per esempio "66FF66". Inoltre, la costante xlNone (-4142) può essere passata per impostare la cella in modo che non abbia colore sullo sfondo, tuttavia tali celle sono contrassegnate in bianco RGB(255, 255, 255)
dalla proprietà Get
. Sapendo questo, possiamo scrivere una funzione che restituisce uno o tutti i valori RGB appropriati.
Fortunatamente, un tipo che il signor Allan Wyatt ha fatto proprio qui!
Questo numero "arbitrario" è una combinazione matematica dei valori RGB (R * 256^2 + G * 256 + B) e una conversione del valore di colore esadecimale in un numero decimale (base 16 alla base 10), a seconda del modo in cui si desidera guardarlo. Solo basi diverse. Di seguito è riportato il metodo che utilizzo nel file addin XLAM che ho scritto per Excel. Questo metodo è tornato utile molte volte. Ho incluso la documentazione nel mio file di addin.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 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
bello vedere che il signor Wyatt utilizza il metodo veloce di colore in RGB
R = C Mod 256
G = C \ 256 Mod 256
B = C \ 65536 Mod 256
che è molte volte più veloce di quelli che utilizzano esadecimale str con sinistro metà destra che alcuni consigliamo
L'altra risposta non ha funzionato per me. Ho trovato che:
R = C And 255
G = C \ 256 And 255
B = C \ 256^2 And 255
e ha funzionato correttamente.
- 1. Estrarre valori RGB da UIColor
- 2. Come convertire dinamicamente la proprietà ConverterParameter (o qualsiasi) di una risorsa MultiBinding (o qualsiasi altra) in fase di runtime?
- 3. Come convertire "background-color" in formato rgb()?
- 4. proprietà transparent border-color
- 5. Restare autenticati con l'SDK/API Onedrive (o qualsiasi altra API)
- 6. Algoritmo per convertire qualsiasi intero positivo in un valore RGB
- 7. valori di colore RGB/RGBA a goniometro
- 8. Leggi timeout utilizzando urllib2 o qualsiasi altra libreria http
- 9. Get background-color in formato # 000 e non RGB
- 10. Espressione regolare Javascript per valori rgb
- 11. Streaming con Node.js o qualsiasi altra soluzione di Comet
- 12. Chiamare client hub SignalR da qualsiasi altra parte nel sistema
- 13. Perché è consigliabile caricare jQuery o qualsiasi altra libreria da un CDN?
- 14. Ordina array restituito da ActiveRecord per data (o qualsiasi altra colonna)
- 15. generare codice sorgente HTML css da javascript angolare o qualsiasi altra cosa
- 16. Quale versione di ZIP è supportata da Java (1.6 o qualsiasi altra versione)
- 17. ElasticSearch scomparso/arrestato - impossibile trovare i file di registro o qualsiasi altra informazione
- 18. Come estrarre i valori di colore (#rgb) da un tema Android?
- 19. restituisce due valori da webservice
- 20. Estrarre valori RGB da un AVFrame (FFMPEG) in C++
- 21. Color Logic Algorithm
- 22. jquery css ("border-color") non restituisce nulla
- 23. Registrazione orientata agli aspetti con Unity \ T4 \ qualsiasi altra cosa
- 24. restituisce più valori da sapply/lapply
- 25. valori rgb su scala 0 a 1
- 26. Come stampare Java Bean completamente utilizzando la riflessione o di qualsiasi altra utilità
- 27. esecuzione funzione limite di tempo in PHP o qualsiasi altra cosa
- 28. C++ Ottenere RGB da hBitmap
- 29. Come normalizzare il valore RGB con i valori RGB di riferimento
- 30. modifica i valori rgb in un jpg con python
Sia Yours che Harry lavorano entrambi. F.I. Valore rosso di 'RGB (50,100,200) = RGB (50,100,200) Mod 256' e valore rosso di 'RGB (50,100,200) = RGB (50,100,200) E 255' – Mill