|
|
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Добрый день! Проблема в следеющем. Существет файл Excel в нем 20 листов. Все строки от A1 до A100 каждого листа проименованы как I_1.. I_100. Мне нужно изменить имя именованной ячейки, чтобы имя включало номер листа, допустим List1_I_1.. List1_I_100, для второго List2_I_1.. List2_I_100. Все вроде бы понятно, только не могу получить имя именованной ячейки, не оригинальное, а именно именование. Рисунок прилагаю. Буду очень признателен за наставление на путь истины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2008, 22:27:45 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
смотри на коллекцию workbook.names ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2008, 22:56:11 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Оно и так его включает, только так же как для адреса ячейки, который одинаковый на всех листах не отображается имя листа, так и для именованой формулы. Если всё же не включает то задайте имя с именем листа лист1!Имя1 , хотя в окошке отображается только Имя1, но на самом деле можно ссылаться на этот адрес со всех листов как лист1!Имя1 , так же как лист1!A5 например. Для того чтобы проверить принадлежит ли ямя определённому листу или всей книги, нужно зайти в меню вставка - имя - присвоить и посмотреть есть ли напротив имени имя текущего листа или нет. Если нет, то значит оно принадлежит всей книге. И в данном случае если сослаться на это имя без указания имени листа, то при наличии на текущем листе такого имени, эксель возмёт его, а при отсутствии возмёт имя которое для всей книги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2008, 23:01:47 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Нет, вы не поняли ) У меня таких файлов 200 штук, мне нужно просто автоматизировать процесс переименования ячеек. В принципе вот и все. Вот что я не могу найти в доке - это как мне получить текущее имя именованной ячейки. Именно то самое I_1 и просто сделать из него List1_I_1. Вообщем так. А-то я так до 100 лет буду руками перебивать, а через 100 лет я буду уже точно на погосте ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2008, 23:30:30 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
DeggasadДля того чтобы проверить принадлежит ли ямя определённому листу или всей книги, нужно зайти в меню вставка - имя - присвоить и посмотреть есть ли напротив имени имя текущего листа или нет. Если нет, то значит оно принадлежит всей книге. И в данном случае если сослаться на это имя без указания имени листа, то при наличии на текущем листе такого имени, эксель возмёт его, а при отсутствии возмёт имя которое для всей книги.Вообще-то, имя области не может принадлежать либо тому, либо другому. Имя области всегда принадлежит листу. А коллекция имен книги это автоматически склеенная коллекция из всех коллекций листов. Запусти макрос типа: Код: plaintext 1. Когда ты ссылаешься на именованную область без указания листа - Эксель ищет эту область сначала на текущем листе, если не нашел - ищет по всей книге. А если на двух листах есть области с одинаковыми именами, то Эксель либо выругается либо возмет первую попавшийся лист (это зависит от контекста). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2008, 23:41:45 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
скриптик, хоть пример, дальше я допетрю сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2008, 23:43:23 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Ex232Вот что я не могу найти в доке - это как мне получить текущее имя именованной ячейки. Именно то самое I_1 и просто сделать из него List1_I_1. Вообщем так.А никак ты его не получишь. Пляши от коллекции имен. Делай по ней цикл, смотри куда очередное имя показывает и меняй соотвественно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2008, 23:44:42 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Боюсь, что это может привести к тяжеловесным решениям типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2008, 23:47:53 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
White Owl, это добавить именованную ячейку. Я так пробовал. Но мне нужно примерно так. 1) OldSellName = Получить имя именованной ячейки в текущем листе по индексу допустим 1,1 или по Range) 2) newName ="List_"+ номер листа преобразованный в строку+"_"+OldSellName 3) Переименовать OldSellName на newName ( или сперва удалить OldSellName и присвоить newName) Вообщем-то понимаю? что как-то тривиально , но в VBA не силен, докопаюсь конечно, но нужно это сделать как обычно - ВЧЕРА :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2008, 23:49:36 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
KL (XL)Боюсь, что это может привести к тяжеловесным решениям типа:Если от ячейки плясать, то да. А если сразу от имени, то все намного проще будет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2008, 23:50:59 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
White Owl DeggasadДля того чтобы проверить принадлежит ли ямя определённому листу или всей книги, нужно зайти в меню вставка - имя - присвоить и посмотреть есть ли напротив имени имя текущего листа или нет. Если нет, то значит оно принадлежит всей книге. И в данном случае если сослаться на это имя без указания имени листа, то при наличии на текущем листе такого имени, эксель возмёт его, а при отсутствии возмёт имя которое для всей книги.Вообще-то, имя области не может принадлежать либо тому, либо другому. Имя области всегда принадлежит листу. А коллекция имен книги это автоматически склеенная коллекция из всех коллекций листов. Запусти макрос типа: Код: plaintext 1. Когда ты ссылаешься на именованную область без указания листа - Эксель ищет эту область сначала на текущем листе, если не нашел - ищет по всей книге. А если на двух листах есть области с одинаковыми именами, то Эксель либо выругается либо возмет первую попавшийся лист (это зависит от контекста). У меня складывается впечатление что половину этого говорил я, а во второйполовине вы ошибаетесь. Посмотрите мой файл. 1)2 именю одинаковых для книги быть не может. Только одно может быть для книги, второе уже автоматом ставится только для листа. 2)если есть имя Name1 , которое принадлежит определённому листу, т.е. Sh1!Name1 ? то написав на другом листе в ячеке =Name1 , вы получите лишь ошибку, ничего эксель не найдет, т.к. на имя принадлежащее листу нужно ссылаться с других листов только так =Sh1!Name1 3) Возможно я неправильно называю термин принадлежащее листу, просто я это сам придумал, т.к. правильных определений не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2008, 23:53:24 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
White OwlЕсли от ячейки плясать, то да. А если сразу от имени, то все намного проще будет :)Ты об этом? Код: plaintext Да, это было бы легко, но похоже задача несколько другая :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2008, 23:56:37 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
White Owl, ага они проименованы, нужно их просто чуток подправить. Вот и все. Им не нужно присваивать новое имя их нужно просто переименовать по правилам которые я оприсал, вернне просто приписать порядковый номер листа. Это нужно для того чтобы дурацкая система отчетнсьти легла по данным. Сейчас ячеки называються просто I_xxx, а нужно их трасформировать в L1I_xxx, вот и все... Тока для меня пока это загадка века. Я не программист, я бухгалтер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:01:24 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Если есть закономерность именования ячеек или несколько закономерностей или шаблон имен для всех листов, то на...замеч вообще старое имя ячейки узнавать. Задавай новые имена для всех, да и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:02:23 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Deggasad, нельзя, это добро потом выгружаеться в центр учета, а он итоговый отччет раситывает именно по именам ячеек. Вот тока так и никак иначе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:04:33 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
DeggasadУ меня складывается впечатление что половину этого говорил я, а во второйполовине вы ошибаетесь. Посмотрите мой файл. 1)2 именю одинаковых для книги быть не может. Только одно может быть для книги, второе уже автоматом ставится только для листа. 2)если есть имя Name1 , которое принадлежит определённому листу, т.е. Sh1!Name1 ? то написав на другом листе в ячеке =Name1 , вы получите лишь ошибку, ничего эксель не найдет, т.к. на имя принадлежащее листу нужно ссылаться с других листов только так =Sh1!Name1 3) Возможно я неправильно называю термин принадлежащее листу, просто я это сам придумал, т.к. правильных определений не знаю. Усложним задачу (см. приложение). Посмотри на всех 3х листах и найди 3 отличия при наличии лишь одного имени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:04:38 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Ex232Deggasad, нельзя, это добро потом выгружаеться в центр учета, а он итоговый отччет раситывает именно по именам ячеек. Вот тока так и никак иначе. Так я и предлагаю вам имена всех ячеек по новой назначить, вы же знаете как они должны называться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:13:59 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Deggasad, допустим так. Вы что предлагаете ? Руками все перебить ? Легко ) Все ячеки, старый удалить, а новые присвоить, это при условии что на каждом листе их ( мы называем это показателями около 1500 штук, листов 20, файлов 200) :) Что тогда я тут делаю ? =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:17:06 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Ex232Deggasad, допустим так. Вы что предлагаете ? Руками все перебить ? Легко ) Все ячеки, старый удалить, а новые присвоить, это при условии что на каждом листе их ( мы называем это показателями около 1500 штук, листов 20, файлов 200) :) Что тогда я тут делаю ? =) Епти, да не руками а макросом, перебрать все нужные ячейки и задать имена которые нужно, при условии что есть шаблон по которому нужно задавать имена. Например Код: plaintext 1. 2. 3. 4. 5. 6. 7. Ведь есть же какая-то закономерность имён, или шаблон из которого имена для ячеек можно дёргать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:26:27 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Ну самое простое, что вы должны знать. Как мне получить имя именованной ячейки ? не реальное имя, а именно присвоенное мной ? Дальше сам разберусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:27:27 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Deggasad Код: plaintext 1. 2. 3. 4. 5. 6. 7. исправления ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:27:46 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Deggasad, а вот iCell.name возвращает реальное имя ячейки :) А вот мне нужно получить старое присвоенное ячейке имя. Я до этого сам допетрил. Не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:29:22 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Возвращает так: '415050110440032131'!$A$16 а мне нужно, просто I_145. Вот так-то. Че и маюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:30:47 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
KL (XL) Усложним задачу (см. приложение). Посмотри на всех 3х листах и найди 3 отличия при наличии лишь одного имени. ШАМАН правильно я понял, что перед адресом нужно добавить ! (вскл зн) и стереть имя листа? Шаман, но только моё высказывание эта уловочка не опровергает по той простой причине, что это одно имя (просто замудрёное), а я говорил, что не может быть несколько одинаковых имён в колеекции имён книги, принадлежащих всей книге, а не отдельному листу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:36:22 |
|
||
|
переименование именовонных ячеек
|
|||
|---|---|---|---|
|
#18+
Ex232Возвращает так: '415050110440032131'!$A$16 а мне нужно, просто I_145. Вот так-то. Че и маюсь. Вы так совсем замаетесь Неужели я непонятно изъясняюсь НАЗОВИ ЕГО ПО НОВОЙ ДА И ВСЁ Если у тебя есть какакя-то закономерность имён, а если её нет, нах они вообще нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 00:39:15 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=35048912&tid=2181598]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 326ms |

| 0 / 0 |
