Добавление списка проверки данных (раскрывающегося списка) в диапазон ячеек?

У меня есть большой диапазон ("C2: C100") для добавления раскрывающегося списка.

Я пробовал следующее:

With Worksheets("Sheet2").Range("c2:c100").Validation
.Add xlValidateList, xlValidAlertStop, xlBetween, "=Sheet3!a2:a5"
.InCellDropdown = True
End With

Но это сработало только для ячейки C2. Итак, я попробовал:

With Worksheets("Sheet2").Range("c2:c100")
    With .Validation
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1: = "=Sheet3!a2:a5"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End With

И продолжали получать ошибку со строкой ".Add Type..."

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны убедиться, что вы удалили любую проверку из всех ячеек, прежде чем добавлять проверку в диапазон. Запуск .Delete перед .Add не приведет к ошибке, если она не существует, и удалит все, что существует.

With Worksheets("Sheet2").Range("c2:c100").Validation
    .Delete
    .add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
         Operator:=xlBetween, Formula1: = "=Sheet3!$A$2:$A$5"
    .InCellDropdown = True
End With

Я предпочитаю использовать именованные параметры; особенно когда эти параметры являются необязательными.

Вам нужно сделать ссылку на диапазон списка абсолютной, иначе список станет относительным к положению ячейки. например C3 будет Sheet3!A3:A6, C4 будет Sheet3!A4:A7 и т. д.

Другие вопросы по теме