Excel - создать выпадающий список на определенные ячейки

вопрос

Я хотел создать выпадающий список из данных в Sheet2. Я пробовал следующие коды, но результат кажется неправильным. Вместо данных в Листе 2, перечисленных в раскрывающемся списке, в раскрывающемся списке содержались данные из Листа 1 (который является моим целевым листом).

Кроме того, я хотел бы иметь раскрывающийся список для определенных ячеек, где у меня есть информация о ячейках ранее, то есть раскрывающийся список должен находиться в столбце F листа 1, где есть информация о столбце E листа 1, и повторяться до конца список.

Прилагается файл, над которым я работаю здесь.

Решение

Вы создаете список проверки из ДРУГОГО РАБОЧЕГО ЛИСТА, даете имя диапазона этому списку проверки (на листе 2)

и использовать это как формулу

Я пытался изменить ваш макрос без помех, кроме изменения одной или двух строк

Я дал имя диапазона как "rangename". Вы можете изменить это в макросе

При необходимости настройте его немного больше.

 Sub Dropdown () Dim x As Long, y As Long Dim objCell как диапазон Dim objDataRangeStart как диапазон Dim objDataRangeEnd как диапазон Dim rangename As String '>> Установить диапазон для действительного набора данных wsSourceList = Sheets ("Sheet2") установить wsDestList = Sheets ("Sheet1") Установите objDataRangeStart = wsSourceList.Cells (1, 2) 'Начальный диапазон для записей раскрывающегося списка. Установите objDataRangeEnd = wsSourceList.Cells (6, 2)' Конечный диапазон для записей раскрывающегося списка. MsgBox objDataRangeStart MsgBox objD. ============= С диапазоном рабочих листов ("Sheet2") (objDataRangeStart, objdatarangaeend) .Name = "rangename" Конец '=============== ====== '>> Установить проверку для требуемой ячейки.' Установить objCell = wsDestList.Cells (8, 4) 'Расположение раскрывающегося списка.' MsgBox objCell x = 4 y = 6 Установить ObjCell = wsDestList.Cells (x, y) 'Расположение раскрывающегося списка с objCell.Validation .Delete' .Add Type: = xlValidateList, AlertStyle: = xlValidAlertStop, Operator: = xlBetween, Formula1: = "=" & objDataRangeStart.Address & .Rata & ":" Адрес '= ================================================. Добавить тип: = xlValidateList, AlertStyle : = xlValidAlertStop, Оператор: = _ xlBetween, Formula1: = "= rangename" '======================================= ======================================= .IgnoreBlank = True .InCellDropdown = True .ErrorTitle = "Предупреждение" .ErrorMessage = " Пожалуйста, выберите значение из списка доступных в выбранной ячейке. " .ShowError = True End With x = x + 1 'y = y + 1 Loop До x = 51 End Sub 

Спасибо venkat1926 за этот совет.

Предыдущая статья Следующая статья

Лучшие советы