Ошибка отображения, если диапазон не имеет цвета заливки - PullRequest
1 голос
/ 11 ноября 2019

Я пытаюсь создать код для проверки цвета заливки ячеек. Если цвета нет, код должен продолжаться вперед. Если есть цвет заливки, тогда код должен выдавать ошибку.

У меня есть обработчик ошибок, он отправляет электронное сообщение об ошибке:

    On Error GoTo ErrorHandlerColor

ErrorHandlerColor:

Вот мой код:

With ThisWorkbook.Worksheets("Main").Range("A2" & ThisWorkbook.Worksheets("Main").Range("L2").End(xlDown).Row)
    If IsNull(.DisplayFormat.Interior.ColorIndex) Then
    Else
      MsgBox 1 / 0
      Exit Sub

          End If
    End With

Мой диапазон на самом деле что-то A2:L1343, но так как он меняется, я устанавливаю его до последнего ряда.

Под ошибкой я подразумеваю MsgBox 1 / 0, поэтому логика не работает

В настоящее время проблема заключается в том, что он постоянно выдает ошибку. Даже если нет ячеек с цветом заполнения. Что может быть не так?

1 Ответ

3 голосов
/ 11 ноября 2019

Чтобы найти последнюю строку, см. This

Как @TimWilliams упомянул, что .ColorIndex = xlNone действительно надежен только для одной ячейки. Так что используйте .ColorIndex = xlColorIndexNone. Это то, что вы пытаетесь? Для этого не требуется цикл .

Option Explicit

Sub Sample()
    Dim ws As Worksheet
    Dim lRow As Long

    Set ws = ThisWorkbook.Worksheets("Main")

    With ws
        lRow = .Range("L" & .Rows.Count).End(xlUp).Row

        If .Range("A2:L" & lRow).Interior.ColorIndex = xlColorIndexNone Then
            MsgBox "There is no color"
        Else
            MsgBox "There is color"
        End If
    End With
End Sub

Или

Option Explicit

Sub Sample()
    Dim ws As Worksheet
    Dim lRow As Long

    Set ws = ThisWorkbook.Worksheets("Main")

    With ws
        lRow = .Range("L" & .Rows.Count).End(xlUp).Row

        If .Range("A2:L" & lRow).DisplayFormat.Interior.ColorIndex = xlColorIndexNone Then
            MsgBox "There is no color"
        Else
            MsgBox "There is color"
        End If
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...