2017-05-26 24 views
2

Ich habe zwei Zellen: grün und lila. Ich habe den Code:Excel vba .Interior.ColorIndex funktioniert nicht richtig

Sub test() 
    With Selection.Interior 
     MsgBox (.ColorIndex) 
    End With 
End Sub 

Somewhy Die MsgBox mit der Nummer 15 erscheint sowohl für grün und lila Farben. Wenn ich den Code verwenden

Sub test() 
    With Selection.Interior 
     MsgBox (.Color) 
    End With 
End Sub 

Es gibt unterschiedliche Anzahl aber einzigartig für grün und lila Farben: 10213316 und 13082801.

Warum gibt die ColorIndex die gleichen Nummern und warum gibt unterschiedliche und eindeutige Zahlen?

Ist es sicher, die von .Color zurückgegebenen Zahlen in Code sowieso zu verwenden? Würde es sich nicht je nach Computer ändern?

+0

FYI die Pars um '.Color' sind überflüssig und werden Sie schließlich in dem hinteren Ende beißen. [Siehe warum] (https://stackoverflow.com/documentation/vba/1179/procedure-calls/3818/this-is-confusing-why-not-just-always-use-parentheses#t=201705261415301545264). –

Antwort

5

.Color ist eine viel breitere Palette als .ColorIndex (es hat mehr Farben definiert). ColorIndex muss ungefähre Werte für weniger definierte Farben und Farbschattierungen liefern.

enter image description here

Verwandte Themen