![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.03.2011
Сообщений: 33
|
![]()
Уважаемые эксперты! Подскажите технологию заполнения списка проверки данных элементами массива или списком констант через VBA, по аналогии вставки списка значений через стандартный диалог "проверка данных" -> "список"
Пробую так: Option Explicit Dim list_monht As Variant Dim nitem Dim titem Sub mylist_month() list_monht = Array("январь", "февраль", "март") 'ну и т.д. Workbooks(ThisWorkbook.Name).Active Sheet.UsedRange.Item(1).Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:= ******ЗДЕСЬ ЗАГВОЗДКА***** .IgnoreBlank = True .InCellDropdown = True End With Как переписать массив list_monht в ValidateList? Помогите! |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
![]()
Попробуйте:
Код:
Последний раз редактировалось nilem; 23.05.2011 в 09:48. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 09.03.2011
Сообщений: 33
|
![]()
nilem! Угу, заработала! Спасибо премногое!
И еще вопросик, вдогонку - а можно ли возвращать индекс выбранного элемента в списке xlValidateList, подобно: PHP код:
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
![]()
Вот такое придумалось (в модуль листа, проверяем яч. А1):
Код:
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 09.03.2011
Сообщений: 33
|
![]()
Интересный подход...
Не все понятно, правда, - при беглом просмотре. Щас скопирую и буду пробовать. Спасибо за оперативную помощь! PS Как я понял, спец.пропертей у этого объекта нет - ну чтоб сразу по currently selected item ретурнуть index элемента. Рылся в хелпе и ничего не нашел... может плохо рылся.... |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
А так:
Код:
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 09.03.2011
Сообщений: 33
|
![]()
Private Sub Worksheet_Change никак не реагирует на изменения.
Target.Address равен А1, SpecialCells(-4174) в той же ячейке, а почему-то ничего не происходит... Причем, само событие Private Sub Worksheet_Change не перехватывается, т.к. для проверки поставил Код:
Последний раз редактировалось Miguel Sanchez; 25.05.2011 в 07:50. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Вполне может быть, что у Вас сбойнул код после
Application.EnableEvents = False и соответственно Application.EnableEvents = True не прошло, поэтому и перестали обрабатываться события.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 09.03.2011
Сообщений: 33
|
![]()
Виноват, накосячил... - Private Sub Worksheet_Change вставил в общий модуль, а не в модуль листа!
![]() Поправил и все заработало! Спасибо всем! |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Я это название макроса никогда не вставляю и не набираю - вдруг какая ошибка, например а или о кириллицей
![]() Они ведь есть в выпадающем списке в редакторе - никогда не ошибёшься.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Заполнение массива | Сеня2007 | Помощь студентам | 6 | 23.02.2011 20:39 |
создание массива real рандомно с 2-мя разными значениями после запятой | dima-intro | Помощь студентам | 6 | 15.12.2010 20:15 |
Delphi. Перемещение всех элементов массива с четными значениями в конец массива2. | deathz0r | Помощь студентам | 1 | 25.05.2010 15:04 |
Заполнение значениями из сводной | Branch | Microsoft Office Excel | 0 | 12.02.2009 16:20 |
Заполнение столбца с уникальными значениями автоматически | Mary_star | SQL, базы данных | 7 | 04.08.2008 17:43 |