Я довольно новичок в VBA и с трудом отлаживаю блок кода ниже. Моя цель состоит в том, чтобы окрасить код в некоторые строки (например, 5% из них) на активном листе на основе содержимого ячеек в столбце 7. Код ошибки - это ошибка времени выполнения «1004»: ошибка, определяемая приложением или объектная ошибка. Любую помощь или указатели будут очень благодарны.Как рабочий лист с цветовым кодом, использующий для .. Следующий цикл и выбор случая?
Редактировать: lastRow хорошо работает в других блоках кода, и он объявлен и назначен ранее в программе, поэтому я в настоящее время не подозреваю, что это проблема.
' 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
Вы должны присвоить значение *** lastRow ***. Вот почему 'Cells()' умирают. –
Извините, я отредактировал бит кода здесь, чтобы решить это. В полной программе макросов lastRow объявляется и назначается до того, как программа попадет в этот блок. – FrogLegs
Попробуйте изменить blockStatus = ActiveWorkbook.ActiveSheet.Range (Ячейки (blockRow, 7)). Значение blockStatus = ActiveSheet.Cells (blockRow, 7) – Absinthe