Создание проверки вводимых значений через vba (тип данных список)

Узнай цену своей работы

Формулировка задачи:

Добрый день! Пытаюсь написать макрос, который на основе именовонного диапазона создает "Проверку вводимых значений" в ячейке (Есть такая функция, можно это сделать ручками, но мне необходимо автоматизировать процесс).

Хочу создавать списки на основе данных хранящихся в именованном диапазоне.

Вот код, это сгенеривоанный код VBA, в котором изменена только 1 строчка

было

: xlBetween, Formula1:="='Тест1'!$F$2:$I$2"

стало

: xlBetween, Formula1:=Name_in_collection.Value VBA ругается, почему-не понимаю, в принципе в Name_in_collection.Value хранится как раз таки адрес моего диапазона, при этом тип данных string/variant. Не подскажите в чем проблема?
Листинг программы
  1. Sub y()
  2. For Each Name_in_collection In Names
  3. Worksheets.Item("Тест").Range("C17").Select
  4. With Selection.Validation
  5. .Delete
  6. .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
  7. xlBetween, Formula1:=Name_in_collection.Value 'тут ругается
  8. .IgnoreBlank = True
  9. .InCellDropdown = True
  10. .InputTitle = ""
  11. .ErrorTitle = ""
  12. .InputMessage = ""
  13. .ErrorMessage = ""
  14. .ShowInput = True
  15. .ShowError = True
  16. End With
  17. Next
  18. End Sub

Решение задачи: «Создание проверки вводимых значений через vba (тип данных список)»

textual
Листинг программы
  1. Private Sub Test()
  2.     Dim iCell As Range, iName As Name, tmp$
  3.     Set iCell = Worksheets("Меню").Range("C17")
  4.    
  5.     For Each iName In Names
  6.         tmp = iName.Name
  7.         If tmp Like "*[А-я]#*" Then
  8.            With iCell.Validation
  9.                 .Delete
  10.                 .Add xlValidateList, xlValidAlertStop, _
  11.                 xlBetween, "=INDIRECT(""" & tmp & """)"
  12.            End With
  13.            Set iCell = iCell(2)
  14.         End If
  15.     Next
  16. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут