Страницы: 1
RSS
Выпадающий список при помощи VBA, ошибка Application defined or object defined error при установке выпадающего списка при помощи макроса
 
Уважаемые знатоки VBA, добрый день.

Вопрос за засыпку, есть умная таблица в которую заносятся данные по клиенту: название клиента (вручную), группа товара (выпадающий именованный список) и название товара (именованный взаимосвязанный выпадающий список).

Есть макрос, который распространяет списки на столбцы таблицы. Суть работы макроса проста - он выделяет, сначала столбец Группа товара и устанавливает для него параметр Выпадающий список (LIST), затем выделяет столбец Название товара и также устанавливает для него параметр Выпадающий список SubCat).

Проблема в том, что при установке выпадающего списка для столбца Название товара - макрос выдает ошибкуна следующей строке:
Код
 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=SubCat"
с кодом Application defined or object defined error

При этом для столбца Группа товара - макрос без особых проблем устанавливает выпадающий список.

Подскажите пожалуйста в чем может быть проблема ?
 
дело не в макросе, а в формуле. =SubCat
попробуйте такую:
=ДВССЫЛ("База_данных!B"&ПОИСКПОЗ(Лист1!$C2;База_данных!$A$1:$A$7;0)&":B"&ПОИСКПОЗ(Лист1!$C2;База_данных!$A$1:$A$7;0)+СЧЁТЕСЛИ(База_данных!$A$1:$A$7;Лист1!$C2)-1)

для чего там макрос вообще не понял.
умная таблица будет продлеваться с вып.списком

формулу поменял - не в той ячейке скопировал

сам не пойму - то работает, то нет
Изменено: Catboyun - 21.07.2015 19:28:53
 
Так для начала надо было попробовать вручную создать - ошибка возникает при вычислении источника данных. Значит формула неверная. А все потому - что на момент создания списка значение в C2 - пустое. ПОИСКПОЗ выдает НД. Возникает ошибка. Значит эту ошибку надо обрабатывать.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist,Вы имеете ввиду добавить обработчик в формулу на проверку налчия в столбце С не пустых ячеек ?

Добавил в формулу именованного диапазона проверку
Код
=Если(Лист1!$C3>0;СМЕЩ(База_данных!$A$2;ПОИСКПОЗ(Лист1!$C3;База_данных!$A$2:$A$7;0)-1;1;СЧЁТЕСЛИ(База_данных!$A$2:$A$7;Лист1!$C3);1);"")
ошибка продолжает появляться. Есть ли возможность игнировать ошибку и присваивать диапазону список, даже если значение ячейки С2 пустое ?
 
Вам нужна такая формула:
Код
=ЕСЛИ(ЕНД(ПОИСКПОЗ(Лист1!$C2;База_данных!$A$2:$A$7;0));Лист1!$C2;СМЕЩ(База_данных!$A$2;ПОИСКПОЗ(Лист1!$C2;База_данных!$A$2:$A$7;0)-1;1;СЧЁТЕСЛИ(База_данных!$A$2:$A$7;Лист1!$C2);1))
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Согласен
Цитата
Catboyun написал:
для чего там макрос вообще не понял.
умная таблица будет продлеваться с вып.списком
2. Если есть одна "Умная таблица", почему не сделать три ?
3. Относительные ссылки в именованых формулах, имхо, - зло.
Попробуйте:
Страницы: 1
Наверх