![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 23.07.2009
Сообщений: 181
|
![]()
Здравствуйте! Как можно сделать так, чтобы не вводить имена ячеек вручную, а чтобы Excel автоматический задавал их (любая комбинация букв, начиная с 1 буквы и кончая совокупностью различных букв, не имеет значения имя, главное, чтобы оно было), это необходимо, чтобы ссылки в Word были из Excel никак строка-столбец, а уже ссылались на имя. То есть возможно будет добавлять строки и столбцы в Excel, при этом, чтобы в Word ничего не смещалось. Важно, чтобы задавались также имена при добавлении новых строк и столцов. Думаю это возможно сделать через макрос. Можно ли будет его применять уже на готовом файле?
Последний раз редактировалось Foxx; 16.03.2010 в 08:21. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 29.10.2008
Сообщений: 294
|
![]()
Вот несколько чудесных кодов от EducatedFool
1. Присваивает имена ячейкам, равным их содержанию Код:
Код:
Код:
Код:
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 23.07.2009
Сообщений: 181
|
![]()
Если использовать такое присвоение имен, то ячейкам с цифрами (значения каких либо переменных) не присваиваются значения. Нужно чтобы можно было потом менять эти цифры для новых данных, а имена должны остатся такими же, так как будет ссылка в Word идти. Почему не присваиваются имена ячейкам со значениями?
А нельзя прописать так чтобы задавал имя как комбинацию букв, начиная с любой буквой, их количеством. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 29.10.2008
Сообщений: 294
|
![]()
Как Вам такой вариант.
Код:
![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 23.07.2009
Сообщений: 181
|
![]()
Спасибо, но в полной мере не подходит. Так как если вписываешь текст в какую нибудь ячейку, то ей не присваивается имя. Также не присваивается имя если например в ячейке s=. Можно ли просто задавать имена не ориентируясь на значения в ней. Просто чтобы программа перебирала все буквы алфавита и всавляла в имя.
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Не знаю, на сколько Вам это поможет.
Следующий макрос присвоит имена всем используемым ячейкам активного листа по схеме: "имя_A1", "имя_A2" и т.д. Код:
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 23.07.2009
Сообщений: 181
|
![]()
SAS888 Огромное спасибо. Но один нюанс, вот если придется добавлять строки или столбцы, и нужно тоже их назвать. Снова нельзя использовать этот макрос, так как имена тех ячеек переименуются, а нужно, чтобы они остались такими же ведь идут ссылки на Word. Как это можно осуществить.?
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]() Цитата:
Код:
Код:
Чем шире угол зрения, тем он тупее.
|
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Наконец-то, я понял, что Вам нужно. Чтобы при вставке строк (столбцов) внутри используемого диапазона, все ячейки сдвигались и сохраняли свои имена при повторном запуске макроса. Так? Если так, то можно поступить очень просто, использовав ячейку листа для хранения служебной информации. В примере - это ячейка "A1", значение которой инкременируется при каждом запуске макроса. В таком случае, макрос будет пытаться переименовывать ячейки каждый раз с новым именем. И, соответственно, присваивать эти имена только тем ячейкам используемого диапазона, которые не имеют имени. все именованные ячейки свои имена сохранят. Единственное условие: нельзя добавлять строку (столбец) выше (левее) первой (первого), т.к. ячейка, содержащая служебную информацию в этом случае сдвинется. Поэтому, лучше для служебных целей использовать ячейку другого листа, в котором она фиксирована. Хранить это значение в глобальной переменной нельзя, т.к. оно потеряется при закрытии книги.
Код:
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 23.07.2009
Сообщений: 181
|
![]()
Да пробовал, ведь если добавляешь в 5 строку еще одну строку и заново применяешь этот макрос cellname. a5 станет a6, имя следовательно также изменится. залил архив. Насчет cellname1, после второго макроса он создал новое имя и для тех же ячеек. Нужно, чтобы при добавлении строк задавались какие то новые имена, так получается раз ссылка идет на a1, то есть на местоположение, при смене его имя будет меняться. может я что то не так делаю, вот залил архив для cellname
Поправка: написал раньше, чем пос 9, не увидел. Последний раз редактировалось Foxx; 17.03.2010 в 12:40. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как разделить значения ячеек по формату ячеек? | ARIRAN | Microsoft Office Excel | 6 | 11.12.2009 15:30 |
макрос - подсчитать для каждой строки кол-во ячеек с «+», кол-во ячеек с «-» | Vadim_abs | Microsoft Office Excel | 36 | 14.07.2009 12:08 |
имена файлов | Tirendus | БД в Delphi | 1 | 01.04.2009 20:49 |
Имена хостов :( | InseR | Работа с сетью в Delphi | 1 | 04.07.2007 12:15 |