Проверка VBA нескольких условий - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь написать макрос VBA, который:

1) Принимает выбранную активную ячейку в данный момент.

2) Выполняет проверку данных, если значение меньше числа или равно другой ячейке (например, B2, которая тоже содержит число).

3) ИЛИ имеет значение в активной ячейке, равное строке «NA», вставленной пользователем.

Это код, который я придумал до сих пор:

Sub Macro()
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
        xlLessEqual, Formula1:="=OR(" & ActiveCell.Value & "=""NA"",AND(ISNUMBER(" & ActiveCell.Value & ")," & ActiveCell.Value & "<=B2))"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub

Но он продолжает давать мне:

Ошибка времени выполнения '1004': определяется приложением или объектом ошибка:

Есть ли у вас решение этой проблемы?

Заранее большое спасибо!

1 Ответ

1 голос
/ 06 апреля 2020

Попробуйте это. Вам нужно указывать адрес ячейки, а не ее значение.

Sub Macro()

With Selection.Validation
    .Delete
    .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
        Formula1:="=OR(" & ActiveCell.Address & "=""NA"",AND(ISNUMBER(" & ActiveCell.Address & ")," & ActiveCell.Address & "<=B2))"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...