2016-07-18 20 views
0

Verwendung: Excel 2010VBA Füllen Zellenfarbe basierend auf dem Wert einer anderen Zelle

Ziel: I „Wenn D14 gleich A, dann füllen dieser Bereich mit diesem RGB ist versucht zu sagen, andernfalls, wenn D14 gleich B, dann fülle diesen Bereich mit diesem RGB ". Wenn es darauf ankommt, befindet sich dieses Skript in einem privaten Sub.

Problem: Ich gebe diesen Fehler zurück: "Laufzeitfehler '1004': Anwendungsdefinierter oder objektdefinierter Fehler". Das Seltsame daran ist, dass es tatsächlich funktioniert hat und die Füllfarbe des Bereichs geändert wurde, aber es wird immer noch nach korrekt ausgeführt.

was ich versucht habe: Dies ist der Code, den ich mit so weit herumgespielt habe, kann aber nicht herausfinden, wie

With ThisWorkbook.Sheets("Dashboard").Range("A1:I1") 
    If ThisWorkbook.Sheets("Dashboard").Range("D14").Value = "A" Then 
     .Interior.Color = RGB(0, 180, 210) 
    ElseIf ThisWorkbook.Sheets("Dashboard").Range("D14").Value = "B" Then 
     .Interior.Color = RGB(51, 57, 64) 'The debugger says the issue is on this line 
    End If 
End With 
+3

Wäre eine bedingte Formatierung nicht einfacher? – Comintern

+0

@Comintern Sie haben Recht, aber ich ändere auch die Farbe der Formen auf dem gleichen Arbeitsblatt, das über VBA gemacht werden muss (nach meinem besten Wissen), also möchte ich alles im VBA-Skript behalten. Für die Formen funktioniert das Skript gut. Kann es aber nicht richtig für den Bereich bekommen. – Chase

+0

Ihr Code funktionierte einwandfrei, als ich ihn ausführte (Excel 2007). Habe ein dunkles Grau und ein Hellblau. Könnte es einen Tippfehler im Code geben? – Sobigen

Antwort

0
If ThisWorkbook.Sheets("Dashboard").Range("D14").Value = "A" Then 

Diese Zeile Sie den Bereich definieren lösen

.Interior.Color = RGB(0, 180, 210) 

diese Linie nicht wahr

ThisWorkbook.Sheets("Dashboard").Range("D14").Interior.Color = RGB(0, 180, 210) 
+0

* EDIT * nur Kommentar zu Syntax –

Verwandte Themen