Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
 Аватар для zavr0id
64 / 6 / 1
Регистрация: 19.04.2011
Сообщений: 65
Записей в блоге: 1

Application-defined error при добавлении связного выпадающего списка

04.03.2013, 16:47. Показов 3692. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Создаю связный выпадающий список следующим образом:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        Application.ReferenceStyle = xlR1C1
 
        vrng = "=OFFSET(Списки!R1C2,IFERROR(MATCH(RC[-1],Списки!R1C2:R100C2,0),1)-1,2,1,IFERROR(VLOOKUP(RC[-1],Списки!R1C2:R100C3,2,0),0)+2)"
    
     With rr.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=vrng
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = ifadd
    End With
в 2010 все нормально работает. Но одном из компьютеров пользователей, где установлен 2007 выдает ошибку:
"1004: application-defined or object-defined error".
Первоначально я решила эту проблему добавлением
Visual Basic
1
        Application.ReferenceStyle = xlR1C1
т.к. выяснила, что если стиль ссылок книги не совпадает со стилем в формуле, эксель ругается.
Все было ОК, но после внесения некоторых изменений в файл (без изменения функции, добавляющей выпадающие списки), ошибка снова появилась.
Причем на простой список типа
Visual Basic
1
        vrng = "=Списки!R3C4:R3C10"
эксель не ругается.
проблема осложняется еще и тем, что такая ошибка возникает только на одном компьютере, который к тому же находится в Кишиневе, соответственно, ее не так просто найти.
Может быть кто-то сталкивался с чем-то подобным? что может быть не так в формуле? может быть нужно название листа писать в кавычках? или это как-то связано с языковыми установками, т.к. скорее всего в Кишиневе они отличаются от моих?
Заранее большое спасибо за помощь!!!

P.S. для проверки формулы источника, я записала ее в ячейку видоизменив на
СУММ(СМЕЩ(...)), где СМЕЩ(...) то же самое, что и "=OFFSET(Списки!R1C2,IFERROR(MATCH(R C[-1],Списки!R1C2:R100C2,0),1)-1,2,1,IFERROR(VLOOKUP(RC[-1],Списки!R1C2:R100C3,2,0),0)+2)"
В ячейке эксель все вычислил => с формулой вроде все в порядке....
файл не прилагаю, т.к. он довольно большой, но если кто-то заинтересуется, могу выделить функцию в отдельный файл.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.03.2013, 16:47
Ответы с готовыми решениями:

Ошибка при создании диаграммы (Application defined or object defined error 1004)
Добрый день. Пытаюсь создать диаграмму,но выдает ошибку Application defined or object defined error 1004 При нажатии Debug выделяет:...

Проблема с формулами в VBA Excel: Run-time error 1004. Application defined or object-defined error
Здравствуйте. Я столкнулся с такой проблемой: я пишу вот такой код Cells(NStartOfMoneyChanels + iChannels *...

Решение с ошибкой Run time error:'1004' Application-defined or object-defined error
Есть такой код, который применяет условное форматирование , а именно закрашивает все ячейки, которые меньше значения находящегося в столбце...

9
 Аватар для Андрэич
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
05.03.2013, 01:35
А первую очередь я бы проверил:
- нет ли в 2010 используемых свойств, методов, функций, которые отсутствуют в предыдущих версиях;
- подключённые ссылки;
- перед сдачей кода на конечные машины изменил в коде раннее связывание на позднее (и вообще. добавил функционал по поиску и подключению нужных библиотек, например, используя условное компилирование);

Добавлено через 1 минуту
- и нужно при написании учитывать возможные иные региональные настройки конечной машины (но из приведённых фрагментов кода это не следует)
1
 Аватар для zavr0id
64 / 6 / 1
Регистрация: 19.04.2011
Сообщений: 65
Записей в блоге: 1
05.03.2013, 11:30  [ТС]
Большое спасибо за ответ! только, честно говоря, я почти ничего не поняла... =(
не могли бы вы написать более подробно.
по тому, что уже написано:
- чего-то, что есть в 2010, наверняка нет в 2007, но это явно не Validation, тем более, как я писала, эта функция работает нормально для простых списков типа "=Списки!R3C4:R3C10"
- тут я вообще не поняла, что имеется ввиду =(
- с библиотеками вроде проблем нет....
В любом случае БОЛЬШОЕ СПАСИБО за Вашу помощь!

Добавлено через 15 минут
Выкладываю файл только с проблемной функцией. Кнопка "Обновить списки".
0
 Аватар для zavr0id
64 / 6 / 1
Регистрация: 19.04.2011
Сообщений: 65
Записей в блоге: 1
05.03.2013, 11:32  [ТС]
файл:
Вложения
Тип файла: zip списки1.zip (23.9 Кб, 13 просмотров)
0
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
05.03.2013, 11:43
Будуте смеяться. Но сегодня столкнулся с той же ошибкой, но в другом примере. Стоял на ушах. Пока не перезагрузил компьютер (перезагрузка офиса не помогла). Оказалось, что комп не выключался месяца полтора ...
Попросите админов на "том" удаленном компьютере поставить систему удаленного управления. Это позволит вам подключиться к "тому" компу и выяснить строчку и причину ошибки.
Все остальные советы будут просто тыканием пальца в небо ...
1
 Аватар для zavr0id
64 / 6 / 1
Регистрация: 19.04.2011
Сообщений: 65
Записей в блоге: 1
05.03.2013, 11:58  [ТС]
Большое спасибо за ответ!
попробую посоветовать перезагрузку, но не уверена, что это поможет...
Я отправила им выложенный файл, чтобы исключить вероятность влияния всего остального кода. У них он тоже выдает ошибку, соответственно, проблема все-таки где-то в этой функции (или в самом компе)...
Прилагаю скрин ошибки.
Миниатюры
Application-defined error при добавлении связного выпадающего списка  
0
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
05.03.2013, 14:31
Конкретного совета дать не могу т.к. воспроизвести ошибку не удается.
Попробуйте сделать следующее:
1. проверить чтобы в экселе на "том" компе где вылезает ошибка - не было других открытых файлов
2. проверить - одинаковые ли стоят версии экселя
3. вместо списка - вставить другую проверку (для начала просто - на числа)
4. попробовать записать макрос вставки на "том" компе - тот же будет код или нет?!
5. вместо формулы, напишите функцию, которая сама будет собирать допустимые значения и вставлять проверку данных по списку в нужные ячейки (только помните, что когда вы работаете с экселем руками - при вставке списка перечисляете значения через символ ";", что собственно и увидите при записи макросом ... а вот повторно запустить этот макрос не получится - даст ошибку. Перечислять значения списка из макроса нужно через запятую ))) )
1
 Аватар для zavr0id
64 / 6 / 1
Регистрация: 19.04.2011
Сообщений: 65
Записей в блоге: 1
05.03.2013, 14:54  [ТС]
Большое спасибо!
Попробую то, что Вы предложили. Вот то, что уже есть:
Цитата Сообщение от StepInLik Посмотреть сообщение
2. проверить - одинаковые ли стоят версии экселя
у меня 2010, там - 2007

Цитата Сообщение от StepInLik Посмотреть сообщение
3. вместо списка - вставить другую проверку (для начала просто - на числа)
Другая проверка на список без смещения работает

и еще вопрос (м.б. это чем-то поможет...) - как я понимаю ошибка 'Application object-defined..' довольно неопределенная (если можно так сказать), нельзя ли как-то узнать, более конкретно, что экселю не нравится, м.б. смещение выходит за пределы листа или ВПР дает ошибку... или еще что-то...
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
05.03.2013, 15:27
Цитата Сообщение от zavr0id Посмотреть сообщение
тем более, как я писала, эта функция работает нормально для простых списков типа "=Списки!R3C4:R3C10"
В 2007 это не сработает. В 2007 и предыдущих версиях в условии проверки можно использовать диапазоны только этого листа. Однако есть обходной маневр: создать имя, которое ссылается на диапазон другого листа или содержит формулу, и написать формулу =Имя в условии проверки.
1
 Аватар для zavr0id
64 / 6 / 1
Регистрация: 19.04.2011
Сообщений: 65
Записей в блоге: 1
05.03.2013, 16:06  [ТС]
Спасибо за ответ!
но рискну с Вами не согласиться, т.к. когда я добавила выход из процедуры в случае сложного списка (строка11)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    If pn = "Подтип ТО" Then
        If t = 0 Then
            a = -1
            b = 0
        Else
            a = 0
            b = -1
        End If
        vrng = "=OFFSET('Списки'!R1C2,IFERROR(MATCH(R[" & a & "]C[" & b & "],'Списки'!R1C2:R100C2,0),1)-1,2,1,IFERROR(VLOOKUP(R[" & a & "]C[" & b & "],'Списки'!R1C2:R100C3,2,0),0)+2)"
       Exit Sub
   Else
        vrng = "=Списки!R" & sp & "C4:R" & sp & "C" & 5 + wb.Cells(sp, 3).Value
    End If
    
    With rr.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=vrng
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = ifadd
    End With
у них все заработало..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.03.2013, 16:06
Помогаю со студенческими работами здесь

Ошибка в коде: 'Run-time error '1004': Application-defined or object-defined error'
Помогите разобраться что здесь не так: Sub ProtectWorksheet() Worksheets(1).Protect Password:='asdfg', AllowFormattingCells:=True End...

Ошибка run-time error 1004 application-defined or object-defined error
Здравствуйте! Public Sub ress() Dim Xn As Single, Xk As Single, Xs As Single Dim T As Single, Y As Single Dim n As Single n...

Ошибка Runtime error 1004 application-defined or object-defined error
Здравствуйте! Выдает ошибку Runtime error 1004 application-defined or object-defined error Помогите, пожалуйста, разобраться. Ниже...

Ошибка runtime error 1004 application-defined or object-defined error
Здравствуйте! Взяла простенький пример из книги Уокенбаха "Excel 2010. профессиональное программирование на VBA", но у меня...

Run-time error 1004: Application-defined or object-defined error
Здравствуйте, уважаемые. Не знаю, обсуждали вы тут уже такое или нет (по крайней мере, поиск ничего не дал), но очень нужна ваша...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru