Проверка данных, Тип данных "Список". Не задаётся формула
FeLiX
Дата: Четверг, 03.07.2014, 09:16 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Добрый день. Пытаюсь с помощью кода создать проверку данных типа список. Уже воспользовался даже записью макроса и получил следующий код: [vba]Код
Sub Макрос13() Range("D6").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=ДВССЫЛ(ВПР(B6;'Лист2'!$C$3:$D$7;3))" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With Range("D12").Select End Sub
[/vba] Но даже при его выполнении на строке: [vba]Код
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=ДВССЫЛ(ВПР(B6;'Лист2'!$C$3:$D$7;3))"
[/vba] Возникает сообщение об ошибке: 1004 Application-defined or object-defined error Может кто сталкивался с подобной ситуацией? Создал пример, чтобы было понятней, о чём речь. Руками создать всё не сложно, но у меня эти таблицы формируются автоматически путём загрузки из БД.
Добрый день. Пытаюсь с помощью кода создать проверку данных типа список. Уже воспользовался даже записью макроса и получил следующий код: [vba]Код
Sub Макрос13() Range("D6").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=ДВССЫЛ(ВПР(B6;'Лист2'!$C$3:$D$7;3))" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With Range("D12").Select End Sub
[/vba] Но даже при его выполнении на строке: [vba]Код
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=ДВССЫЛ(ВПР(B6;'Лист2'!$C$3:$D$7;3))"
[/vba] Возникает сообщение об ошибке: 1004 Application-defined or object-defined error Может кто сталкивался с подобной ситуацией? Создал пример, чтобы было понятней, о чём речь. Руками создать всё не сложно, но у меня эти таблицы формируются автоматически путём загрузки из БД. FeLiX
К сообщению приложен файл:
1004.xlsm
(22.0 Kb)
Ответить
Сообщение Добрый день. Пытаюсь с помощью кода создать проверку данных типа список. Уже воспользовался даже записью макроса и получил следующий код: [vba]Код
Sub Макрос13() Range("D6").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=ДВССЫЛ(ВПР(B6;'Лист2'!$C$3:$D$7;3))" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With Range("D12").Select End Sub
[/vba] Но даже при его выполнении на строке: [vba]Код
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=ДВССЫЛ(ВПР(B6;'Лист2'!$C$3:$D$7;3))"
[/vba] Возникает сообщение об ошибке: 1004 Application-defined or object-defined error Может кто сталкивался с подобной ситуацией? Создал пример, чтобы было понятней, о чём речь. Руками создать всё не сложно, но у меня эти таблицы формируются автоматически путём загрузки из БД. Автор - FeLiX Дата добавления - 03.07.2014 в 09:16
_Boroda_
Дата: Четверг, 03.07.2014, 09:23 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16713
Репутация:
6503
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Что-то не совсем понял сакрального смысла формулы Код
=ДВССЫЛ(ВПР(B6;'Лист2'!$C$3:$D$7;3))
Объясните словами - что и где Вы хотите получить
Что-то не совсем понял сакрального смысла формулы Код
=ДВССЫЛ(ВПР(B6;'Лист2'!$C$3:$D$7;3))
Объясните словами - что и где Вы хотите получить _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Что-то не совсем понял сакрального смысла формулы Код
=ДВССЫЛ(ВПР(B6;'Лист2'!$C$3:$D$7;3))
Объясните словами - что и где Вы хотите получить Автор - _Boroda_ Дата добавления - 03.07.2014 в 09:23
Саня
Дата: Четверг, 03.07.2014, 09:58 |
Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация:
560
±
Замечаний:
0% ±
XL 2016
Что-то не совсем понял сакрального смысла формулы
ч/з таблицу соответствия получают название именованного диапазона, потом сам диапазон. Formula1:="=ДВССЫЛ(ВПР(B6;'Лист2'!$C$3:$D$7;3))" Formula1:="=INDIRECT(VLOOKUP(B6,Лист2!$C$4:$D$7,2))" нюансы локализации
Что-то не совсем понял сакрального смысла формулы
ч/з таблицу соответствия получают название именованного диапазона, потом сам диапазон. Formula1:="=ДВССЫЛ(ВПР(B6;'Лист2'!$C$3:$D$7;3))" Formula1:="=INDIRECT(VLOOKUP(B6,Лист2!$C$4:$D$7,2))" нюансы локализацииСаня
Ответить
Сообщение Что-то не совсем понял сакрального смысла формулы
ч/з таблицу соответствия получают название именованного диапазона, потом сам диапазон. Formula1:="=ДВССЫЛ(ВПР(B6;'Лист2'!$C$3:$D$7;3))" Formula1:="=INDIRECT(VLOOKUP(B6,Лист2!$C$4:$D$7,2))" нюансы локализацииАвтор - Саня Дата добавления - 03.07.2014 в 09:58
_Boroda_
Дата: Четверг, 03.07.2014, 10:27 |
Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16713
Репутация:
6503
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Блин, точно. Не проснулся еще, похоже. Тогда так еще можно: Добавляем еще имя ййй=ДВССЫЛ(ВПР(Лист1!$B4;Лист2!$C$4:$D$7;2)) и пишем Formula1:="=ййй"
Блин, точно. Не проснулся еще, похоже. Тогда так еще можно: Добавляем еще имя ййй=ДВССЫЛ(ВПР(Лист1!$B4;Лист2!$C$4:$D$7;2)) и пишем Formula1:="=ййй" _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Блин, точно. Не проснулся еще, похоже. Тогда так еще можно: Добавляем еще имя ййй=ДВССЫЛ(ВПР(Лист1!$B4;Лист2!$C$4:$D$7;2)) и пишем Formula1:="=ййй" Автор - _Boroda_ Дата добавления - 03.07.2014 в 10:27
FeLiX
Дата: Четверг, 03.07.2014, 13:46 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Всем Спасибо. Ошибка была в формуле нужно было писать в формуле не ";", а "," Видимо есть разница В итоге получилось: [vba]Код
FormulaStr = "=INDIRECT(VLOOKUP($B6," + sProject.Name + "!$C$3:$H$" + Trim(str(sProject.ListObjects("tblProject").ListRows.Count + 2)) + ",6))" 'ActiveWorkbook.Names.Add Name:="ForListApp", RefersToR1C1:="=INDIRECT(VLOOKUP(Рабочии_элементы!R[0]C2,Справочник_Проектов!R3C3:R6C8,6))" 'FormulaStr = "=ForListApp" With sWorkItem.Range("tblWorkItem[Приложение]").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=FormulaStr .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ShowInput = True .ShowError = True End With
[/vba]
Всем Спасибо. Ошибка была в формуле нужно было писать в формуле не ";", а "," Видимо есть разница В итоге получилось: [vba]Код
FormulaStr = "=INDIRECT(VLOOKUP($B6," + sProject.Name + "!$C$3:$H$" + Trim(str(sProject.ListObjects("tblProject").ListRows.Count + 2)) + ",6))" 'ActiveWorkbook.Names.Add Name:="ForListApp", RefersToR1C1:="=INDIRECT(VLOOKUP(Рабочии_элементы!R[0]C2,Справочник_Проектов!R3C3:R6C8,6))" 'FormulaStr = "=ForListApp" With sWorkItem.Range("tblWorkItem[Приложение]").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=FormulaStr .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ShowInput = True .ShowError = True End With
[/vba] FeLiX
Ответить
Сообщение Всем Спасибо. Ошибка была в формуле нужно было писать в формуле не ";", а "," Видимо есть разница В итоге получилось: [vba]Код
FormulaStr = "=INDIRECT(VLOOKUP($B6," + sProject.Name + "!$C$3:$H$" + Trim(str(sProject.ListObjects("tblProject").ListRows.Count + 2)) + ",6))" 'ActiveWorkbook.Names.Add Name:="ForListApp", RefersToR1C1:="=INDIRECT(VLOOKUP(Рабочии_элементы!R[0]C2,Справочник_Проектов!R3C3:R6C8,6))" 'FormulaStr = "=ForListApp" With sWorkItem.Range("tblWorkItem[Приложение]").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=FormulaStr .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ShowInput = True .ShowError = True End With
[/vba] Автор - FeLiX Дата добавления - 03.07.2014 в 13:46