私はVBAにはかなり新しく、以下のコードブロックをデバッグするのは苦労しています。私の目標は、列7のセルの内容に基づいて、アクティブなワークシートの行の一部(たとえばその5%)を色付けすることです。エラーコードはランタイムエラー '1004'です。アプリケーション定義またはオブジェクト定義のエラーです。どのような助けや指針をいただければ幸いです。For .. Next LoopとSelect Caseを使用したワークシートの色分け方法
編集: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(Cells(blockRow、7))を変更してみてください。blockStatus = ActiveSheet.Cells(blockRow、7)の値 – Absinthe