Если утверждение в пределах ошибки 13 - введите ошибку - PullRequest
1 голос
/ 29 мая 2019

У меня есть логические или # N / A значения в столбце DO.Если истинное логическое значение находится в пределах диапазона столбца DO, я хочу, чтобы соответствующая ячейка в диапазоне r3FTop была изменена на цвет в соответствии с моим кодом.Я думаю, что ячейка DO2 соответствует X5, а ячейка D03 - X2.

Когда я запускаю этот код с

Set rRng = Worksheets("mapOut").Range("DO2:DO2") and 
Set r3FTop = Worksheets("mapOut").Range("X5")

, код работает нормально (ячейки становятся оранжевыми, когда значение ячейкив DO2 - Истина, а не в случае, если значение ячейки - Ложь или # Н / Д).Однако после добавления следующей ячейки в каждом диапазоне (DO3 и X2) я получаю ошибку типа 13.

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

Для простоты использования я решил пакетировать ссылки на ячейки, которые я хочу раскрасить, в группе, когда они появляются на экране.

Sub toCheckOut()

Dim rCell As Range
Dim rRng As Range
Dim r3FTop As Range

' check out check column
Set rRng = Worksheets("mapOut").Range("DO2:DO3")


Set r3FTop = Worksheets("mapOut").Range("X5", "X2")

For Each rCell In rRng.Cells
    If rRng.Value = False Then
        GoTo Continue

    ElseIf rRng.Value = True Then
        r3FTop.Interior.Color = RGB(237, 125, 49)

    Else
        GoTo Continue

    End If

Continue:

    Next rCell

End Sub

Мой фактический диапазон столбцов - DO2: DO90, и у меня есть соответствующие значения ячеек для переменной r3FTop.Хотелось бы, чтобы код шел и игнорировал значения # N / A или False и менял соответствующие цвета ячеек только при обнаружении истинного логического значения.

Я пытался переписать приведенный выше код так, чтобы истинное логическое значениесначала рассматривается так же, как и при работе с пробелами (с использованием application.worksheet.isna (rRng).

Любые указатели будут очень благодарны.

Ответы [ 2 ]

0 голосов
/ 29 мая 2019

Это должно работать сейчас:

Sub toCheckOut()

Dim rCell As Range
Dim rRng As Range
Dim r3FTop As Range
Dim arr(1) as String
Dim i as Integer

i = 0

 ' check out check column
Set rRng = Worksheets("mapOut").Range("DO2:DO3")

arr(0) = "5"
arr(1) = "2"
'Set r3FTop = Worksheets("mapOut").Range("X5", "X2")

For Each rCell In rRng.Cells
    If rRng.Value = False Then
        GoTo Continue

    ElseIf rRng.Value = True Then
         Worksheets("mapOut").Range("X" & arr(i)).Interior.Color = RGB(237, 125, 49)
         i = i + 1
    Else
        GoTo Continue

    End If

Continue:

    Next rCell

End Sub
0 голосов
/ 29 мая 2019

Попробуйте это

Set r3FTop = Worksheets("mapOut").Range("X5, X2")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...