Страницы: 1
RSS
Очень длинный макрос надо сделать: Compile error: Procedure too large
 
Добрый день  
 
Надо сделать из txt файла красивую таблицу прайс  
1) Жму: Сервис -> Макрос -> Начать запись...  
2) Импортирую данные, пишу много умных формул, чтобы текст выглядел красиво, разукрашиваю прайс  
3) Останавливаю запись, закрываю excel, сохраняю макрос  
4) Открываю excel, запускаю макрос, а он мне: Compile error: Procedure too large  
 
Какие тут могут быть советы?  
(Ниже описано как много действий надо сделать, но всеже - хоть чтонибудь подскажите)  
 
PS Немного о обрабатываемом файле:  
1) Импортируется ~12000 строк, 17 столбцов  
2) Убирается около половины столбцов  
3) Теперь надо убрать товар, у которого в одной из строк написано ZPAM (около 1000 нижних позиций)  
4) Справа от этой таблицы создаются формулы типа: =если(A2="ZPAM";"";если(A2"";"";A2)) - таким макаром создаю новую таблицу, но без ненужного товара, растягиваю эти формулы до 15000 строки (на будущее - прайс потихоньку растет)  
5) Новая таблица копируется и вставляется сама на себя специальной вставкой - чтобы вставились только значения, старая таблица удаляется  
6) производится изменение шрифта, заливки, ширины столбцов, закрепление области (шапки), дописывание контактной информации  
7) если нужен этот макрос, то если объясните, как залить его сюда, то залью
 
Чудно как то...  
 
Сначала: "...Надо сделать из txt файла красивую таблицу прайс..."  
Потом: "...3) Останавливаю запись, закрываю excel, сохраняю макрос..."  
И между: "...пишу много умных формул, чтобы текст выглядел красиво..."  
 
Когда из txt в excel перепрыгнули и какие формулы в txt текст украшают ? :)
 
{quote}{login=Serge 007}{date=24.09.2009 05:54}{thema=}{post}Чудно как то...  
 
Сначала: "...Надо сделать из txt файла красивую таблицу прайс..."  
Потом: "...3) Останавливаю запись, закрываю excel, сохраняю макрос..."  
И между: "...пишу много умных формул, чтобы текст выглядел красиво..."  
 
Когда из txt в excel перепрыгнули и какие формулы в txt текст украшают ? :){/post}{/quote}  
 
Складская программа выдает скучный txt файл  
Для публикации наших цен, наличия на сайте создаю xls файл  
делаю все вручную  
сначала импортирую данные, потом довожу до ума прайс  
хочется создать такой макрос, чтобы делать ничего не надо было - нажал кнопочку, а он все сам сделал
 
Давайте код в сюда.  
Уберем все Select и Activate  
Код станет вполовину короче.
Bite my shiny metal ass!      
 
{quote}{login=erros}{date=24.09.2009 05:32}{thema=Очень длинный макрос надо сделать: Compile error: Procedure too large}{post}  
7) если нужен этот макрос, то если объясните, как залить его сюда, то залью{/post}{/quote}При написании ответа обратите внимание на кнопочку "Обзор..." Вот туда и жмите.  
Прочитайте Правила о форматах и размерах прикрепляемых файлов.
Bite my shiny metal ass!      
 
После прочтения правил - зайдите по ссылке  
http://www.planetaexcel.ru/forum.php?thread_id=9945  
 
Эта ссылка еще на 1 странице, а там 3 варианта сбора данных из .тхт от ZVI.  
Может какой то и Вам подойдет.  
Игор67
 
{quote}{login=Лузер™}{date=24.09.2009 06:31}{thema=Re: Очень длинный макрос надо сделать: Compile error: Procedure too large}{post}{quote}{login=erros}{date=24.09.2009 05:32}{thema=Очень длинный макрос надо сделать: Compile error: Procedure too large}{post}  
7) если нужен этот макрос, то если объясните, как залить его сюда, то залью{/post}{/quote}При написании ответа обратите внимание на кнопочку "Обзор..." Вот туда и жмите.  
Прочитайте Правила о форматах и размерах прикрепляемых файлов.{/post}{/quote}  
 
я имел в виду, что не знаю, как прицеплять макрос для изучения=) - не знаю, где он лежит и как его брать - записываю все макросы в PERSONAL.XLS (если не ошибаюсь, то так называется этот "секретный" екселевский файл)  
 
завтра прицеплю прайс, который должен получиться и txt файл из которого надо все брать + запишу макрос по новой и сохраню его в Книга1.xls - его тоже залью
 
а может быть можно разбить макрос на части?  
 
максос А делает 1/3 дела, макрос Б доделывает и готово 2/3 дела и макрос С доделывает  
 
а возможно написать макрос и добавить в концовку, чтобы он запускал другой макрос? Если да - объясните плз, как так сделать - этого будет достаточно
 
Если Вы действительно хотите разбить всю работу на три части, то поступите следующим образом:  
1. Запись производите в "Эта книга".  
2. Запишите первую часть нужных операций. Остановите запись.  
3. Запишите вторую часть нужных операций. Остановите запись.  
4. Запишите третью часть нужных операций. Остановите запись.  
Затем, зайдите в редактор (Alt+F11), найдите первый макрос, допустим, он назван Макрос1. Перед последней строкой (End Sub) вставьте такие строки:  
Call Макрос2  
Call Макрос3  
Это при условии, что они у Вас имеют такие имена.    
А лучше всего прислушайтесь к совету Лузер™ и приложите файл или текст макроса. Наверняка его можно значительно укоротить после макрорекордера.
 
{quote}{login=Юрий М}{date=24.09.2009 10:55}{thema=}{post}  
А лучше всего прислушайтесь к совету Лузер™ и приложите файл или текст макроса. Наверняка его можно значительно укоротить после макрорекордера.{/post}{/quote}  
 
А разве у меня уже не обрезан макрос? "поздно пить боржоми, когда почки отказали" - это не про меня? =)  
 
+ макросы записываю в PERSONAL.XLS (удобнее мне так)  
+ может мне самому удалить лишние строки из макроса с учетом всего вышеперечисленного? объясните только тогда, какие именно строки удалить - я попробую=)
 
Обрезан или нет у Вас макрос, мне судить трудно - я ведь его не вижу. А "лишние" строки, это те, где есть Select, Activate, возможно Scroll...    
Но без текста самого макроса сложно Вам советовать что-то конкретно.
 
Всем спасибо, разбил макрос на 2 макроса - такое решение меня устроило
 
гм... чегойто синий флажек у темы не встает, хотя при написании сообщения около "Опции:" меняю метку с "нет" на синиф флажек...
 
{quote}{login=erros}{date=25.09.2009 11:45}{thema=}{post}гм... чегойто синий флажек у темы не встает, хотя при написании сообщения около "Опции:" меняю метку с "нет" на синиф флажек...{/post}{/quote}  
 
А на кой ляд Вам синий флажок?!
Страницы: 1
Читают тему
Наверх