Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2012, 11:57   #1
Gamlex
 
Регистрация: 01.03.2012
Сообщений: 5
По умолчанию Список на другом листе

Подскажите пожалуйста! Проблема вот в чём: мне нужно чтобы в ячейке на одном листе можно было вибирать значения из списка на другом листе. Далаю вручную через данные->проверка (в источнике пишу формулу =ДВССЫЛ("Лист2!$C$2:$C$6")и всё работает). Однако этот вариант мне не подходит так как я хочу динамически переопределять диапазон списка. Я пишу макрос:
Range("A1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=ДВССЫЛ(""Лист2!$C$2:$C$ 6"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Запускаю, однако он выдаёт ошибку 1004 (application denied...) Не могу разобраться в чём проблема. В сети тоже ничего не нашёл!
Gamlex вне форума Ответить с цитированием
Старый 01.03.2012, 12:06   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Дайте диапазону имя, в проверке ввода ссылайтесь на имя.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 01.03.2012, 13:00   #3
Gamlex
 
Регистрация: 01.03.2012
Сообщений: 5
По умолчанию

К сожалению не помогает
Gamlex вне форума Ответить с цитированием
Старый 01.03.2012, 13:16   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

А Вы пробовали? Не верю...

Код:
Sub tt()
    ActiveWorkbook.Names.Add Name:="vRange", RefersTo:="=Sheet2!C2:C6"
    Range("A1").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
             xlBetween, Formula1:="=vRange"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 01.03.2012, 13:35   #5
Gamlex
 
Регистрация: 01.03.2012
Сообщений: 5
По умолчанию

Да, всё работает, я просто писал лист2!имя_диапазона... Спасибо вам большое!
Gamlex вне форума Ответить с цитированием
Старый 01.03.2012, 15:08   #6
Gamlex
 
Регистрация: 01.03.2012
Сообщений: 5
По умолчанию

Однако, проблема опять. В ячейку А1 он выводит исправно а вот например в ячейку A5 выводит не весь список а часть последних значений. Почему?
Gamlex вне форума Ответить с цитированием
Старый 01.03.2012, 15:14   #7
Gamlex
 
Регистрация: 01.03.2012
Сообщений: 5
По умолчанию

Баксы забыл поставить
Gamlex вне форума Ответить с цитированием
Старый 26.03.2012, 17:45   #8
Iren77
Новичок
Джуниор
 
Регистрация: 15.03.2011
Сообщений: 1
По умолчанию

А если список в другой книге?
Iren77 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск на другом листе agregator Microsoft Office Excel 8 25.12.2010 19:41
Перенос данных из строк в массив на другом листе akd2009 Microsoft Office Excel 2 15.12.2009 15:58
ячейка на одном листе, в которую необходимо подставлять данные из столбца, находящегося на другом листе Ирина Водолагина Microsoft Office Excel 4 04.03.2009 23:38
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43
Ссылка на ячейку в другом листе... Shavminator Microsoft Office Excel 3 23.07.2008 16:52