Создание списка проверки данных с использованием макросов - PullRequest
0 голосов
/ 18 ноября 2018

Мне нужно создать выпадающее меню с помощью макросов. В интернете я нашел код ниже, который работает отлично. Единственная проблема заключается в том, что мне нужно получить содержимое выпадающего меню (например, =$B$1:$B$6) с определенного листа (скажем, Sheet2). Пробовал несколько попыток перенаправить на конкретный лист, но, к сожалению, ни одна из них не сработала.

With Range("A1:A100")
    With .Validation
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                    xlBetween, Formula1:="=$B$1:$B$6"
    End With
End With

1 Ответ

0 голосов
/ 18 ноября 2018

Так как вы указываете, что хотите, чтобы проверка пришла от Sheet2, вам необходимо добавить это в формулу Formula1:="=Sheet2!$B$1:$B$6".

Я бы также добавил .delete, чтобы сначала очистить все предыдущие проверки - иначе вы, скорее всего, столкнетесь с ошибкой, если у вас были какие-либо проверки из предыдущих попыток.

With Range("A1:A100")
    With .Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:="=Sheet2!$B$1:$B$6"
    End With
End With

Наконец, вы действительно должны рассмотреть вопрос о квалификации вашего Range("A1:A100") с вашим рабочим листом, так что-то вроде

With Worksheets("Sheet1").Range("A1:A100")

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

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