создание именованного диапазона
Здраствуйте всем.
Мне нужно создать именованный диапазон с привязкой на конкретную ячейку (на листе в эксель) если делать это через Вставка - имя - присвоить то в коде даётся выражение 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...... Как это правильно написать? К сожалению в английском не силён. :bow: |
Выложите образец документа и укажите куда и что присваивать.
|
Вложений: 1
Выкладываю пример.
На рисунке указана ячейка от которой будет строится следующая именованная область, или именованный диапазон при появлении нового персонажа стада. координаты место положения ячейки относительно предидущего созданного именованного диапазона - всегда одни и теже: в первом столбце, через две строки. Имя именованного диапазона - задаем через инпутбокс - и далее в переменную координаты каждой новой ячейки - через activecell.row - и далее в переменную Вопрос как при создании именованной области (именованного диапазона) увязать имя диапазона выраженное в значении переменной, и координаты ячейка выраженные через переменную значение которой получено через activecell.row вот так - код работает ActiveWorkbook.Names.Add Name:="буйвол_Дортмунд", RefersToR1C1:= _ "=Лист1!R31C1" по другому - пишет ошибка 1004 - недопустимое значение. |
Я готов уточнить условия задачи :yes:
ActiveWorkbook.Names.Add Name:="буйвол_Дортмунд", RefersToR1C1:= _ "=Лист1!R31C1" с помощью этого - задается именованная область. я хочу уйти от refersToR1C1 и задавать этот диапазон в виде: ActiveWorkbook.Names.Add Name:="буйвол_Дортмунд", RefersTo.. :search: := _ "=Лист1!cells(row,column).select или ActiveWorkbook.Names.Add Name:=perenennaya, RefersTo :search: := _ "=Лист1!range("A" & "peremennaya2") где peremennaya принимает значения имени будующей именованной области а peremennaya2 - номер строки будущей именованной области. |
|
Вложений: 1
Прикрепляю файл как Вы просили.
|
Цитата:
Код:
ActiveWorkbook.Names.Add Name:="MyName", RefersTo:="=Лист1!$B$5" Цитата:
Код:
strNameName = "MyName" |
Цитата:
из вашего ответа я так понял что имя диапазона заданного через переменную novdiap должно быть "сплошным" - без пробелов. а в остальном все в "зеленом коде" - верно. а в первом вашем примере я так понял задается строковая переменная "MyName" и далее, в задании имени диапазона - координаты ссылки на положение этой ячейки (с именем строковой переменной) - состоят из иобъдинения "=" с именем листа (наверное текущего) и координат строки, где стоит эта ячейка. Что обозначает участок "=" в RefersTo:= ? |
Цитата:
Цитата:
Цитата:
Цитата:
Код:
"=Лист1!$B4$" |
Время: 20:29. |
Время: 20:29.
© OSzone.net 2001-