Создание проверки вводимых значений через vba (тип данных список)
Формулировка задачи:
Добрый день!
Пытаюсь написать макрос, который на основе именовонного диапазона создает "Проверку вводимых значений" в ячейке (Есть такая функция, можно это сделать ручками, но мне необходимо автоматизировать процесс).
Хочу создавать списки на основе данных хранящихся в именованном диапазоне.
Вот код, это сгенеривоанный код VBA, в котором изменена только 1 строчкабыло
: xlBetween, Formula1:="='Тест1'!$F$2:$I$2"стало
: xlBetween, Formula1:=Name_in_collection.Value VBA ругается, почему-не понимаю, в принципе в Name_in_collection.Value хранится как раз таки адрес моего диапазона, при этом тип данных string/variant. Не подскажите в чем проблема?
Листинг программы
- Sub y()
- For Each Name_in_collection In Names
- Worksheets.Item("Тест").Range("C17").Select
- With Selection.Validation
- .Delete
- .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
- xlBetween, Formula1:=Name_in_collection.Value 'тут ругается
- .IgnoreBlank = True
- .InCellDropdown = True
- .InputTitle = ""
- .ErrorTitle = ""
- .InputMessage = ""
- .ErrorMessage = ""
- .ShowInput = True
- .ShowError = True
- End With
- Next
- End Sub
Решение задачи: «Создание проверки вводимых значений через vba (тип данных список)»
textual
Листинг программы
- Private Sub Test()
- Dim iCell As Range, iName As Name, tmp$
- Set iCell = Worksheets("Меню").Range("C17")
- For Each iName In Names
- tmp = iName.Name
- If tmp Like "*[А-я]#*" Then
- With iCell.Validation
- .Delete
- .Add xlValidateList, xlValidAlertStop, _
- xlBetween, "=INDIRECT(""" & tmp & """)"
- End With
- Set iCell = iCell(2)
- End If
- Next
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д