|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - создание именованного диапазона |
|
VBA - создание именованного диапазона
|
Пользователь Сообщения: 105 |
Профиль | Отправить PM | Цитировать Здраствуйте всем.
Мне нужно создать именованный диапазон с привязкой на конкретную ячейку (на листе в эксель) если делать это через Вставка - имя - присвоить то в коде даётся выражение activeworkbook.names.add name ...... referstoR1C1 = R100C5 а мне нужно чтобы вместо ссылки вида R1C1 было в виде (А100:Е5) или cells(100,5). Пробовал сам писать выражение Activeworkbook.Names.Add Name:= ..... VBA - пишет ошибку 1004 - недопустимое имя или выражение. Имя диапазона берётся из значения переменной FIO координаты ячейки узнаются по activecell.row мне нужно подставить значения FIO и activecell.row в выражение Activeworkbook.names.add name...... Как это правильно написать? К сожалению в английском не силён. |
|
------- Отправлено: 13:20, 27-09-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Выложите образец документа и укажите куда и что присваивать.
|
Отправлено: 16:01, 27-09-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 105
|
Профиль | Отправить PM | Цитировать Выкладываю пример.
На рисунке указана ячейка от которой будет строится следующая именованная область, или именованный диапазон при появлении нового персонажа стада. координаты место положения ячейки относительно предидущего созданного именованного диапазона - всегда одни и теже: в первом столбце, через две строки. Имя именованного диапазона - задаем через инпутбокс - и далее в переменную координаты каждой новой ячейки - через activecell.row - и далее в переменную Вопрос как при создании именованной области (именованного диапазона) увязать имя диапазона выраженное в значении переменной, и координаты ячейка выраженные через переменную значение которой получено через activecell.row вот так - код работает ActiveWorkbook.Names.Add Name:="буйвол_Дортмунд", RefersToR1C1:= _ "=Лист1!R31C1" по другому - пишет ошибка 1004 - недопустимое значение. |
------- Отправлено: 17:10, 27-09-2012 | #3 |
Пользователь Сообщения: 105
|
Профиль | Отправить PM | Цитировать Я готов уточнить условия задачи
ActiveWorkbook.Names.Add Name:="буйвол_Дортмунд", RefersToR1C1:= _ "=Лист1!R31C1" с помощью этого - задается именованная область. я хочу уйти от refersToR1C1 и задавать этот диапазон в виде: ActiveWorkbook.Names.Add Name:="буйвол_Дортмунд", RefersTo.. := _ "=Лист1!cells(row,column).select или ActiveWorkbook.Names.Add Name:=perenennaya, RefersTo := _ "=Лист1!range("A" & "peremennaya2") где peremennaya принимает значения имени будующей именованной области а peremennaya2 - номер строки будущей именованной области. |
------- Отправлено: 11:54, 28-09-2012 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 14:06, 28-09-2012 | #5 |
Пользователь Сообщения: 105
|
Профиль | Отправить PM | Цитировать Прикрепляю файл как Вы просили.
|
------- Отправлено: 14:01, 01-10-2012 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Хоф:
хотя, в общем случае, ссылки вида R1C1 использовать гораздо практичнее. Цитата Хоф:
strNameName = "MyName" ActiveWorkbook.Names.Add Name:= strNameName, RefersTo:="=" & ActiveSheet.Name & "!" & ActiveCell.Address() |
||
Отправлено: 03:15, 02-10-2012 | #7 |
Пользователь Сообщения: 105
|
Профиль | Отправить PM | Цитировать Цитата:
из вашего ответа я так понял что имя диапазона заданного через переменную novdiap должно быть "сплошным" - без пробелов. а в остальном все в "зеленом коде" - верно. а в первом вашем примере я так понял задается строковая переменная "MyName" и далее, в задании имени диапазона - координаты ссылки на положение этой ячейки (с именем строковой переменной) - состоят из иобъдинения "=" с именем листа (наверное текущего) и координат строки, где стоит эта ячейка. Что обозначает участок "=" в RefersTo:= ? |
|
------- Последний раз редактировалось Хоф, 02-10-2012 в 13:26. Причина: уточнение Отправлено: 13:05, 02-10-2012 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Хоф:
Цитата Iska:
Цитата Хоф:
Цитата Хоф:
|
||||
Отправлено: 13:47, 02-10-2012 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
D-sub вне диапазона | Keltaron | Непонятные проблемы с Железом | 15 | 12-01-2013 17:53 | |
CMD/BAT - [решено] Создание текстового файла с последовательными числами указанного диапазона | 91892823 | Скриптовые языки администрирования Windows | 2 | 03-08-2012 06:43 | |
LibreOffice Calc связь диапазона ячеек | run | Хочу все знать | 1 | 18-03-2012 14:13 | |
Route/Bridge - Проброс ДИАПАЗОНА портов | AxeL_FoX | Сетевые технологии | 1 | 22-12-2010 13:00 | |
[решено] вне диапазона | alex_cent | Непонятные проблемы с Железом | 3 | 05-03-2009 14:56 |
|