В приведенном примере создается выпадающий список в ячейке из значений массива (№1). Полученный список имеет ограничения на кол-во символов, т.е. не все значения из массива туда записываются. При этом, используя способы №2 и №3 с ссылками на диапазон ячеек, создается список без ограничений.
Вопрос: Можно ли обойти ето и использовать переменную для создания списка с неограниченным кол-вом символов?
Вопрос: Можно ли обойти ето и использовать переменную для создания списка с неограниченным кол-вом символов?
Код |
---|
Sub Primer() Dim X As Variant With Cells(1).CurrentRegion.Columns(1) X = Filter(.Parent.Evaluate("TRANSPOSE(IF(COUNTIF(OFFSET(" & .Address & ",0,0,ROW(1:" & .Rows.Count & _ "))," & .Address & ")=1," & .Address & ",CHAR(126)))"), "~", 0) End With With Sheets("Лист1").Range("B1").Validation .Delete '№1 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(X, ",") '№2 ' .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=$A$1:$A$" & UBound(X) '№3 ' .Add type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=INDIRECT(""$A$1:$A$100"")" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End Sub |