Макрос VBA: проверка не распознана - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь создать выпадающий список, но error 1004 'Application-defined or object-defined error' подходит к функции .add вплоть до Formula1.

Я пробовал:

  • удаление offset(0,3)
  • Наличие всего в одной строке
  • Снятие скобок и перемещение «.Добавить» на следующую строку
  • Копирование рабочих функций проверки, которые я нашел в сети

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

Sheets("Sheet1").Range("C2").Offset(0, 3).Select
MsgBox cell

With Selection.Validation.Add(Type:=xlValidateList, _
                              AlertStyle:=xlValidAlertStop, _
                              Operator:=xlBetween, _
                              Formula1:="B2:B5")
    .IgnoreBlank = True
    .InCellDropdown = True
End With

1 Ответ

0 голосов
/ 29 октября 2018

Не используйте .Add в вашем With Block.

Sheets("Sheet1").Range("C2").Offset(0, 3).Select

With Selection.Validation
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:="=$B$2:$B$5"
    .IgnoreBlank = True
    .InCellDropdown = True
End With

И я бы посоветовал избежать .Select и объявить переменные диапазона.

Dim myRng As Range
Set myRng = ThisWorkbook.Worksheets("Sheet1").Range("F2")

With myRng.Validation
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:="=$B$2:$B$5"
    .IgnoreBlank = True
    .InCellDropdown = True
End With

Вероятно, было бы неплохо убедиться, что у вас в настоящее время не установлена ​​валидация с использованием .delete - это может вызвать ошибку, если у вас уже установлена ​​валидация данных с предыдущей попытки.

With myRng.Validation
    .delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:="=$B$2:$B$5"
    .IgnoreBlank = True
    .InCellDropdown = True
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...