Ich bin ziemlich neu in VBA und habe es schwer, den folgenden Codeblock zu debuggen. Mein Ziel ist es, einige der Zeilen (etwa 5% von ihnen) im aktiven Arbeitsblatt basierend auf dem Inhalt der Zellen in Spalte 7 farblich zu kennzeichnen. Fehlercode ist Laufzeitfehler '1004': Anwendungsdefinierter oder objektdefinierter Fehler. Jede Hilfe oder Hinweise würden sehr geschätzt werden.Farbcodieren des Arbeitsblatts mit For .. Next Loop und Select Case?
Edit: lastRow funktioniert gut in anderen Blöcken des Codes, und es wird früher im Programm deklariert und zugewiesen, so dass ich derzeit nicht vermuten, dass es das Problem ist.
' Color code data based on strings or numbers found in column 7
Dim lastRow as Integer
lastRow = 9,000
Dim blockStatus As Variant
For blockRow = 3 To lastRow
' the following row triggers runtime error
blockStatus = ActiveWorkbook.ActiveSheet.Range(Cells(blockRow, 7)).Value
Select Case blockStatus
Case Is = "ADMIN*"
Range(Cells(blockRow, 1), Cells(blockRow, 11)).Font.Bold = True
Case Is = "OTHER*"
Range(Cells(blockRow, 1), Cells(blockRow, 11)).Font.Color = RGB(192, 0, 0)
Case Is = "*@*"
Range(Cells(blockRow, 1), Cells(blockRow, 11)).Font.Color = RGB(0, 176, 80)
Case Else
End Select
Next blockRow
Sie müssen *** *** lastRow *** einen Wert zuweisen. Deshalb sterben die 'Cells()'. –
Entschuldigung, ich habe den Code hier bearbeitet, um das zu lösen. In dem vollständigen Makroprogramm wird lastRow deklariert und zugewiesen, bevor das Programm zu diesem Block gelangt. – FrogLegs
Versuchen Sie BlockStatus = ActiveWorkbook.ActiveSheet.Range (Cells (BlockRow, 7)) zu ändern. Wert zu BlockStatus = ActiveSheet.Cells (BlockRow, 7) – Absinthe