Проблема кажется простой, но я ничего не могу найти.Я хочу заполнить выпадающий список (в Excel, а не в пользовательской форме) значениями массива.до сих пор я создал массив и теперь хочу передать его только в раскрывающемся списке.Звучит достаточно просто.
Здесь код для создания выпадающего
Worksheet("Example").Cells(i,13).Select 'original here was a . range but i need it to be variable therefore i used cells
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:= ArrayNAme 'not working
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Я не получаю сообщение об ошибке, но также не появляется выпадающий.Кто-нибудь знает, что я делаю неправильно?
Некоторые хорошие, плохие новости ^^ Теперь создан и заполнен выпадающий список.К сожалению, заполнение не совсем верно.
Последнее значение всегда является числом, и массив не удаляется должным образом при следующем цикле, поэтому картинка выглядит следующим образом:
Первый выпадающий список: «правильное значение"," правильное значение "" 2 "'не должно быть числа
Второе раскрывающееся меню:" значение из первого раскрывающегося списка "," значение из первого раскрывающегося списка "," 2 "," новое правильное значение, ...
Надеюсь, это понятно. Вот мой текущий код.
Dim joinedOutput As String
Dim index As Long
For index = LBound(ArrDropdown, 1) To (UBound(ArrDropdown, 1) - 1)
joinedOutput = joinedOutput & ArrDropdown(index) & ","
Next index
joinedOutput = joinedOutput & UBound(ArrDropdown, 1)
Set rng = Worksheets("Transfer").Cells(j, 13)
With rng.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=joinedOutput
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Erase ArrDropdown