Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2012, 07:01   #1
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию Макрос Cell Name

Здравствуйте! В этом файле содержатся именованные ячейке. Использую макрос Cell Name. В файле задейстовованы 600 строк и столбцы от A до Q. Курсор в ячейке A10. Вставляю строку, ввожу данные в ячейки потом жму выполнение макроса. Занимает около 4 минут. Если не ошибаюсь, этот макрос перебирает заново все ячейки, которые использованы и пересматривает их имена. Если имен нет, он присваивает. Видимо из-за этого при больших программах с большим количеством строк и столбцов занятых, это будет очень долго. Есть ли способ ускорить процесс выполнения макроса (может чтобы он пересматривал только вставленные ячейки).
Вложения
Тип файла: rar cellname.rar (340.9 Кб, 19 просмотров)
Foxx вне форума Ответить с цитированием
Старый 27.02.2012, 09:52   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

А зачем это нужно? У каждой ячейки и так есть уникальное имя в виде адреса. С Вашими экзорсисами пустой файл весит почти мегабайт. Вас это не смущает?
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 27.02.2012, 11:24   #3
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию

kuklp
Программу стер, так как не имеет принципиального значения. Пока я ее писал постепенно вставлял строки и столбцы. В итоге счетчик в ячейке A1 дошел до 23 (скрытый лист Temp). Уникальное имя в виде адреса A1 не закрепляется за ячейкой. Устанавливаю связь в виде неформатированного текста в Word на ячейку. При вставке строк или столбцов, этот адрес будет уже на другой ячейке. Имена же ячеек сохраняются и следовательно связь будет с той ячейкой, которая необходима. Для этого и нужно именовать ячейки.
http://www.programmersforum.ru/showthread.php?t=88411

Последний раз редактировалось Foxx; 27.02.2012 в 11:32.
Foxx вне форума Ответить с цитированием
Старый 27.02.2012, 11:35   #4
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Имена же ячеек сохраняются и следовательно связь будет с той ячейкой, которая необходима. Для этого и нужно именовать ячейки.
все это так, но имена, да еще в ТАКОМ количестве, значительно утяжеляют файл, о чем заметил выше kuklp. Да и скорость работы Excel с именоваными ячейками меньше. Вот и тормоза у Вас.
а
Цитата:
постепенно вставлял строки и столбцы. В итоге счетчик в ячейке A1 дошел до 23 (скрытый лист Temp). Уникальное имя в виде адреса A1 не закрепляется за ячейкой.
ИМХО говорит о непродуманности проекта на начальной стадии разработки.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 27.02.2012, 11:46   #5
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию

VictorM
Все продумать досканально и в полной степени не всегда бывает возможным.
Foxx вне форума Ответить с цитированием
Старый 27.02.2012, 11:52   #6
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию

Если ввести данные в ячейку A1 и D10 и запустить макрос, то имена присваиваются всем ячейка в диапазоне A1:D10.
Foxx вне форума Ответить с цитированием
Старый 27.02.2012, 12:22   #7
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Foxx, а ничего, что Ваш макрос присваивает имена включая тот самый адрес? Т.е. после вставки строки внутри таблицы, все ячейки так же поменяют имена в соответствии с адресами? И чего Вы добились, кроме пустой траты времени? Не, дело Ваше...
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 27.02.2012, 12:31   #8
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Т.е. после вставки строки внутри таблицы, все ячейки так же поменяют имена в соответствии с адресами?
Вводим в A1=1 и в D4=2. Запускаем макрос. Имена ячеек будут типа имя_1A1. Далее курсор на 3 строке. Втставляем строку. Снова запускаем макрос. Имена ячеек новой строки имя_2А3. Имена других ячеек не изменились.
Вложения
Тип файла: rar name.rar (13.1 Кб, 7 просмотров)

Последний раз редактировалось Foxx; 27.02.2012 в 12:38.
Foxx вне форума Ответить с цитированием
Старый 27.02.2012, 12:55   #9
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

А теперь посмотрите, сколько имен ссылаются на ячейку А1. При цифре 7 в temp - 8 имен(если не менять ее расположение). Т.е. при каждом проходе программы к каждой ячейке добавляется еще одно имя. А все это вес и тормоз.
Изображения
Тип файла: gif 2012-02-27_105436.gif (17.4 Кб, 96 просмотров)
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 27.02.2012, 13:00   #10
Foxx
Форумчанин
 
Регистрация: 23.07.2009
Сообщений: 181
По умолчанию

Да. Вы правы. Поэтому и спрашиваю, как можно ускорить этот процесс. Именованные ячейки необходимы. Возможно ли избежать такого повторения ? В каком направлении действовать. Если есть имя у ячейки, чтобы он не присваивал новое имя. В общем, чтобы макрос был универсальный и шустрый.
Код:
Sub CellNames()
For Each cell In ActiveSheet.UsedRange
        cell.Name = "имя_" & Sheets("Temp").[A1] & cell.Address(RowAbsolute:=False, ColumnAbsolute:=False)
    Next: Sheets("Temp").[A1] = Sheets("Temp").[A1] + 1
End Sub

Последний раз редактировалось Foxx; 27.02.2012 в 13:15.
Foxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
Ускорение работы макроса Cell Name. Foxx Microsoft Office Word 0 26.02.2012 21:38
display:table-cell Внутри <table>. Padding не пашет. Kolik317 HTML и CSS 4 19.05.2011 21:05
Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос as-is Microsoft Office Excel 4 25.02.2010 07:51
Return Relative Cell Based on Condition london735 Microsoft Office Excel 6 08.06.2009 17:01