Я работаю над простым макросом Excel, чтобы изменить цвет фона в зависимости от значения ячейки. Это в основном для отображения изображения в Excel. Однако следующий код вызывает сбой Excel без видимой причины.
Option Explicit
Sub SetBgColor()
    On Error GoTo ErrHandler
    Dim Data As Worksheet
    Set Data = Sheets("Data")
    Dim i As Long
    Dim j As Long
    Dim MaxRows As Long
    MaxRows = 693
    Dim MaxCols As Long
    MaxCols = 400
    Dim CellVal As Integer
    For i = 1 To Rows.Count
        For j = 1 To MaxCols
            CellVal = Data.Cells(i, j).Value Mod 255
            If i Mod 3 = 0 Then
                Data.Cells(i, j).Interior.Color = RGB(0, 0, CellVal)
            ElseIf i Mod 3 = 1 Then
                Data.Cells(i, j).Interior.Color = RGB(CellVal, 0, 0)
            ElseIf i Mod 3 = 2 Then
                Data.Cells(i, j).Interior.Color = RGB(0, CellVal, 0)
            End If
        Next j
    Next i
ErrHandler:
Dim Msg As String
If Err.Number <> 0 Then
    Msg = "Error #" & Str(Err.Number) & " generated by " & Err.Source & Chr(13) _
        & "Error Line: " & Erl & Chr(13) _
        & Chr(13) _
        & Err.Description
    MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
End If
End Sub
Рабочий лист содержит 400 столбцов и 693 строки. Макрос запускается правильно, но Excel случайно падает в процессе, и я не могу сказать, почему.
Я добавил код обработки ошибок, но ничего не отображается.
Кроме того, есть ли более эффективный способ, чем зацикливание на каждом столбце и строке?
