-1

Я новичок в VBA и не могу понять, почему мой код не работает.

Я пытаюсь VLOOKUP значения в столбце Z чтобы увидеть, есть ли какие-либо значения "NO" или "NOT SURE" и вернуть значение, такое как "N" в столбце BB если есть совпадение.

Sub comp()
Dim sRange As String
Dim result As String
sRange = "z:z"

If sRange = "NO" Or sRange = "NOT SURE" Then
   result = "N"
Else
   result = "Y"
End If
Range("bb2").Value = result
End Sub

Я понятия не имею, почему он не возвращает "N" для записей "НЕТ" и "НЕ УВЕРЕН". Все значения возвращаются как "Y".

Заранее спасибо.

1 ответ1

0

Ваш код возвращает Y вместо N, потому что для переменной sRange вы назначили весь столбец Z, в этом случае вам необходимо заполнить весь столбец Z либо NO, либо NOT SURE. И я уверен, что вы этого не сделали.

Я предлагаю вам модифицированную версию, которая содержит всего несколько строк в столбце Z, и в этом случае коды VB возвращают N.

Sub comp()

Dim c As Range

    For Each c In Range("Z1:Z10")

        If (c.Value = "NO") Or (c.Value = "NOT SURE") Then

            Range("b2").Value = "N"
            Else
            Range("b2").Value = "Y"

        End If

    Next c

End Sub

Проверьте снимок экрана ниже:

Обратите внимание, настройте диапазон данных, как вам нужно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .