Страницы: 1
RSS
Присваивание имен
 
Доброго времени суток, всем!  
Работаю в MSExcel 2010.  
 
Есть столбец  с 1200 строк, на одном из листе книги(например D). Тот-же самый столбец(D) есть и на осталных 14 листов. Каждой ячейке присвоено имя – уникальное в рамках книги(в имени заложена древовидная структура).  
Задача – как присвоить имена всем ячейкам столбца сразу(одним списком), а не ячейкой за ячейкой, и осталаным 14 листов(конечно изменив предварительно одного из элементов имени, для соблюдения уникальности имен  во всей книге)?  
Перепробовал все возможные варианты  в Диспетчере имен, но не дает именовать несколько ячеек сразу разными именами.
 
Надо выбрать в поле Область книгу. Имя будет уникально только на данном листе. На другом листе можешь задавать такое же имя. :-)
 
{quote}{login=profx11}{date=22.04.2011 12:47}{thema=Присваивание имен}{post}Доброго времени суток, всем!  
Работаю в MSExcel 2010.  
 
Есть столбец  с 1200 строк, на одном из листе книги(например D). Тот-же самый столбец(D) есть и на осталных 14 листов. Каждой ячейке присвоено имя – уникальное в рамках книги(в имени заложена древовидная структура).  
Задача – как присвоить имена всем ячейкам столбца сразу(одним списком), а не ячейкой за ячейкой, и осталаным 14 листов(конечно изменив предварительно одного из элементов имени, для соблюдения уникальности имен  во всей книге)?  
Перепробовал все возможные варианты  в Диспетчере имен, но не дает именовать несколько ячеек сразу разными именами.{/post}{/quote}  
 
каждой ЯЧЕЙКЕ? т.е. у вас в книге будет 1200*14=16800 имен?  
а вы уверены, что другого решения нет?  
 
пс. через интерфейс присвоить сразу несколько имен сразу нескольким ячейкам нельзя, конечно же :) но вам сможет помочь макрос.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=NullUzer}{date=22.04.2011 05:41}{thema=Re: Присваивание имен}{post}Надо выбрать в поле Область книгу. Имя будет уникально только на данном листе. На другом листе можешь задавать такое же имя. :-){/post}{/quote}  
   
Пробовал, по принцип вариант(хотя с точки зрении разпознавания структур выбранных ячеек будет не очень коректно), но не решает вопрос ввода имен целиком, весь список на листе.  
Спасибо за участие!
 
{quote}{login=ikki}{date=22.04.2011 05:46}{thema=Re: Присваивание имен}{post}{quote}{login=profx11}{date=22.04.2011 12:47}{thema=Присваивание имен}{post}  
 
 
каждой ЯЧЕЙКЕ? т.е. у вас в книге будет 1200*14=16800 имен?  
а вы уверены, что другого решения нет?  
 
Наверно есть, просто не догадываюсь о нем!  
 
пс. через интерфейс присвоить сразу несколько имен сразу нескольким ячейкам нельзя, конечно же :) но вам сможет помочь макрос.{/post}{/quote}  
 
Насчет макроса, более подробно, если сильно не нагружает, можете уточнить?
 
Буквально топиком ниже..  
Sub Имена()  
Dim sh As Worksheet, Rng As Range, i&, s$  
For Each sh In ActiveWorkbook.Worksheets  
Set Rng = sh.[a1].CurrentRegion
i = i + 1: s = "Имя" & i  
Rng.Name = s Next  
End Sub
 
{quote}{login=}{date=22.04.2011 07:09}{thema=}{post}Буквально топиком ниже..  
Sub Имена()  
Dim sh As Worksheet, Rng As Range, i&, s$  
For Each sh In ActiveWorkbook.Worksheets  
Set Rng = sh.[a1].CurrentRegion
i = i + 1: s = "Имя" & i  
Rng.Name = s Next  
End Sub{/post}{/quote}  
 
Спасибо, попробую!  
В приложении даю цветовой кодировки структурой, в трех столбцах. Структура одинаковая для всех листов, но значении чисел в ячеек разное. Вот, с этой-же структурой, через имен попытался определить каждой ячейки.
 
{quote}{login=}{date=22.04.2011 07:09}{thema=}{post}Буквально топиком ниже..  
Sub Имена()  
Dim sh As Worksheet, Rng As Range, i&, s$  
For Each sh In ActiveWorkbook.Worksheets  
Set Rng = sh.[a1].CurrentRegion
i = i + 1: s = "Имя" & i  
Rng.Name = s Next  
End Sub{/post}{/quote}  
 
 
Этот макрос мне будет первой в жизни!  
Как видно с примера(ей в цветовой структурной кодировки соотвествуют эти цвета, остальные элементы дополнительные)  ячейки D64 должна именоваться:  
"minus\nula\0866\0064D\zelenyi\zelenyi\korichnevyi"    
   
"Sub Имена()  
Dim sh As Worksheet, Rng As Range, i&, s$  
For Each sh In ActiveWorkbook.Worksheets  
Set Rng = sh.[a1].CurrentRegion
i = i + 1: s = "minus\nula\0866\0064D\zelenyi\zelenyi\korichnevyi" & i  
Rng.Name = s  
Next  
End Sub"  
Запускаю, через Run Sub/UseForm, Разработчик-Макросы(книга открыта макрос в ней есть), но ничего не произходит, ячейка не принимает новое имя.  
Это, я пока одной ячейки пробую, но вот пока мимо, что-то не оформляю правильно в макросе?!  
Ячейка D65 - должна быть "minus\nula\0866\0064D\zelenyi\zelenyi\belyi",  
Ячейка D66 - должна быть "minus\nula\0866\0064D\zelenyi\zelenyi\synyi",  
Ячейка D67 - должна быть "minus\nula\0866\0064D\zelenyi\zelenyi\zelenyi",  
и так до последний ячейке D1171 "minus\nula\0866\0064D\chernyi\chernyi\korichnevyi".  
Это, все на одном листе, на следующим в именах меняется только один элемент "\0866" на "\0707" например, все остальное, цветовая кодировка например остаются такие-же.
 
присвоить именА?  
почему же нельзя? очень даже можно.  
 
вставка-имя-создать  
 
столбец имен расположить справа или слева от адресатов..
Живи и дай жить..
 
правда создаются они в книге, не в листе..
Живи и дай жить..
 
Profx11, переписанный вами макрос работает, только его надо расположить в модуле Эта книга.  
Каждой ячейке А1 (так как данных нет), каждого листа он присваивает уникальное имя. Не понятна цель задачи,  возможно есть более простое решение . Считает Excel лучше, чем раскрашивает.
 
{quote}{login=Маугли}{date=23.04.2011 01:59}{thema=}{post}Profx11, переписанный вами макрос работает, только его надо расположить в модуле Эта книга.  
Каждой ячейке А1 (так как данных нет), каждого листа он присваивает уникальное имя. Не понятна цель задачи,  возможно есть более простое решение . Считает Excel лучше, чем раскрашивает.{/post}{/quote}  
 
Спасибо, ребята за участие!  
 
Нашел как решить задачу, включил запись макроса и на один лист именовал все 1171ячеeк, список с именами расположил рядом на следующем столбце, переименовал каждую ячейку с D1 по D1171, с полученным макросом(во время записи), потом на следующих листах, той-же книги именовал ячейки(естественно, на каждом листе изменял один элемент списка с именами,но это легко делается на всего списка сразу).  
Как закончу, более подробно напишу, может кому еще понадобиться!  
Еще раз сасибо всем!
 
{quote}{login=}{date=23.04.2011 02:43}{thema=Re: }{post}{quote}{login=Маугли}{date=23.04.2011 01:59}{thema=}{post}Profx11, переписанный вами макрос работает, только его надо расположить в модуле Эта книга.  
Каждой ячейке А1 (так как данных нет), каждого листа он присваивает уникальное имя. Не понятна цель задачи,  возможно есть более простое решение . Считает Excel лучше, чем раскрашивает.{/post}{/quote}  
 
Спасибо, ребята за участие!  
 
Нашел как решить задачу, включил запись макроса и на один лист именовал все 1171ячеeк, список с именами расположил рядом на следующем столбце, переименовал каждую ячейку с D1 по D1171, с полученным макросом(во время записи), потом на следующих листах, той-же книги именовал ячейки(естественно, на каждом листе изменял один элемент списка с именами,но это легко делается на всего списка сразу).  
Как закончу, более подробно напишу, может кому еще понадобиться!  
Еще раз сасибо всем!{/post}{/quote}  
 
Тему можно считать закрытой, спасибо всем кто отозвался.  
Из-за ограничения макроса в 64К, пришлось списсок из 1171 имет разделить на 8 модуля.
Страницы: 1
Читают тему
Наверх