Я новичок в stackoverflow, наконец, участник после любопытного время от времени посетителя.До сих пор я всегда находил ответы здесь, но мне кажется, что я должен задать свой первый вопрос сегодня:
Я пытаюсь создать выпадающий список в Excel VBA на 1-м листе на основе списка, который я создал с помощьюзапрос на следующей вкладке.Выпадающий список активируется при открытии рабочей книги.Мне нужно, чтобы диапазон для раскрывающегося списка на листе 1 определялся путем выбора только непустых ячеек в столбце А. Я не могу строго ограничить свой диапазон, поскольку при обновлении запроса список на листе 2 может расширяться или уменьшаться.
Я создал короткий код, который странным образом работает один раз, а затем ломается: - с помощью xldown: выберите все ячейки на 4121 (12 из моего списка и оставьте пустым) - с помощью xlup: выберите только первую ячейку
Помощь будет очень признателен,
Private Sub Workbook_Open()
Application.ScreenUpdating = False
'DROPDOWN PROGRAM LIST
Worksheets("BANF code manager").Unprotect
Dim source_Prgm As Range
Dim Prgm_user As Range
Dim a As Integer
a = Cells(Rows.Count, 1).End(xlDown).Row
Set source_Prgm = Worksheets("lists").Range("A1:A" & a)
Set Prgm_user = Worksheets("BANF code manager").Range("E8")
ThisWorkbook.Names.Add Name:="source_Prgm", RefersTo:=source_Prgm
ThisWorkbook.Names.Add Name:="Prgm_user", RefersTo:=Prgm_user
With Prgm_user.Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=source_Prgm"
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With