Пухнут книги Excel

Программирование на Visual Basic for Applications
MYF
Новичок
Новичок
Аватара пользователя
 
Сообщения: 44
Зарегистрирован: 12.05.2006 (Пт) 6:38
Откуда: Череповец

Пухнут книги Excel

Сообщение MYF » 16.07.2009 (Чт) 8:03

Есть несколько книг Excel. Создавались ещё под Excel 2000.
Время от времени замечаю, что размер их увеличился с 25-40 kB до 300-800 kB. :shock:
Всё, что с ними происходило - иногда добавляли или удаляли 1-2 строки. И в макросе правили адреса запросов данных.
Иногда (но не всегда) достаточно просто открыть файл и щёлкнуть Сохранить, и вот уже 37 kB вместо 25 kB.
И ещё важный момент. Когда файл распух, загружается он чуть ли не минуту. А когда нормальный - открывается практически мгновенно.

Подскажите, как избавиться от этой болезни? Или хотя бы программу, чтобы после правки "почистить" файл...

:cyclops: Пока нашёл один способ. Создаю новую книгу. Копирую туда таблицы (копирование листов не помогает). Копирую макрос (не лист макроса). Цепляю библиотеку. И получаю опять 25-40 kB :eye: но книг много. Это на целый день работы. И обязательно, где-то напутаешь. И опять же форматирование...

Подробности:
MS Office 2000 - потому что сильно завязан с другим софтом.
В книге 1-3 листа и лист макросаов с 1 макросом.
На листе небольшая таблица - на экран влезает.
Макрос запускается вручную и собирает данные из сети в таблицу.
Для макроса прицеплена библиотека MS ADO 2.7 или 2.8.
После обработки данных таблица сохраняется под другим именем. Так что вопрос относится именно к исходной книге. Во время её правки макрос не используется.
Все изменения в исходном файле производятся на любом из 5 компьютеров (какой ближе окажется). Может быть заносится информация о компе и правках?
Правки исходных файлов - добавление или удаление 1-2 строк в таблице и изменение в макросе адресов от куда собираются данные.
Последний раз редактировалось MYF 16.07.2009 (Чт) 19:05, всего редактировалось 2 раз(а).

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Пухнут книги Excel

Сообщение Денис » 16.07.2009 (Чт) 10:37

Размер увеличивается из-за мусора, да. Ты даже не представляешь, сколько скрытых действий прячется за казалось бы простой фразой "прицеплена библиотека MS ADO 2.7 или 2.8"
По сути у тебя внутри файла создается куча контейнеров объектов (из которых ты юзаешь всего два-три) с сылками на них, историей ссылок и прочей ерундой, которой ты не пользовался и не будешь, потому что тебе лично в работе оно не надо.
В общем, так.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

MYF
Новичок
Новичок
Аватара пользователя
 
Сообщения: 44
Зарегистрирован: 12.05.2006 (Пт) 6:38
Откуда: Череповец

Re: Пухнут книги Excel

Сообщение MYF » 16.07.2009 (Чт) 14:12

Ну на счёт присоединения библиотеки понятно...
Так ведь она только из макроса и используется. А макрос во время правки не применяется. Им потом клиенты пользуются, чтобы данные сосать.
И даже при открыл-сохранил-закрыл размер может увеличиться. А может и не увеличиться...
Ну может быть ещё какие-то скрытые действия по прицеплению/отцеплению используются во время загрузки/выгрузки...
Вот не понятно только, что мне со всем этим делать?
Если бы дело было только в размере, так я бы наверное даже и не заметил. Привлекло внимание то, что через пол года файл стал открываться 10-30 секунд. А когда чистенький - практически мгновенно.
Так есть какое ни будь средство для чистки?
Или может быть как-то библиотеку цеплять не в меню проекта, а из этого же скрипта? Тогда во время правки Excel не узнает про библиотеку и не станет городить связей...
Последний раз редактировалось MYF 16.07.2009 (Чт) 19:08, всего редактировалось 1 раз.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Пухнут книги Excel

Сообщение Andrey Fedorov » 16.07.2009 (Чт) 14:36

MYF писал(а):Пока нашёл один способ. Создаю новую книгу. Копирую туда таблицы (копирование листов не помогает). Копирую макрос (не лист макроса). Цепляю библиотеку. И получаю опять 25-40 kB :eye: но книг много. Это на целый день работы. Ибязательно, где-то непутаешь. И опять же форматирование...


Ну может и написать соответствующую процедуру, которая все это будет выполнять?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Пухнут книги Excel

Сообщение MIT » 16.07.2009 (Чт) 14:54

Оффтоп: Access делает тоже самое (увеличивает файл базы), но при действиях Открыл - НЕ сохранил - Закрыл. Наверно так и надо.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

MYF
Новичок
Новичок
Аватара пользователя
 
Сообщения: 44
Зарегистрирован: 12.05.2006 (Пт) 6:38
Откуда: Череповец

Re: Пухнут книги Excel

Сообщение MYF » 16.07.2009 (Чт) 19:15

Andrey Fedorov писал(а):
MYF писал(а):Пока нашёл один способ.
...
Это на целый день работы. И обязательно, где-то напутаешь. И опять же форматирование...
Ну может и написать соответствующую процедуру, которая все это будет выполнять?
Можно и процедуру создать. Только книги разные. Как ей объяснить, какие ячейки копировать? А форматирование? А установка ширины столбцов и высоты строк? Тут и сам-то туплю... Можно конечно в каждую книгу засунуть свою процедуру..., но тогда после каждой правки придётся ещё и ей объяснять что? откуда? и как?...

MadNike
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 07.02.2005 (Пн) 10:29

Re: Пухнут книги Excel

Сообщение MadNike » 17.07.2009 (Пт) 8:46

Не пойму... Книга в сети лежит? К ней общий доступ организован, или монопольный?

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Пухнут книги Excel

Сообщение Andrey Fedorov » 17.07.2009 (Пт) 13:31

MIT писал(а):Оффтоп: Access делает тоже самое (увеличивает файл базы), но при действиях Открыл - НЕ сохранил - Закрыл. Наверно так и надо.


В Access-e базу можно сжать...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Пухнут книги Excel

Сообщение Денис » 17.07.2009 (Пт) 13:51

Я тут подумал, а может в файл xls кладется реплика базы данных при подключении? Ну, типа в классической МС'овской традиции с бесполезной помощью (например для улучшенного поиска).
Никто не читал описания форматов?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

MYF
Новичок
Новичок
Аватара пользователя
 
Сообщения: 44
Зарегистрирован: 12.05.2006 (Пт) 6:38
Откуда: Череповец

Re: Пухнут книги Excel

Сообщение MYF » 17.07.2009 (Пт) 16:01

MadNike писал(а):Не пойму... Книга в сети лежит? К ней общий доступ организован, или монопольный?
Вроде, всё понятно объяснил... Те книги, которые в работе, лежат на компах пользователей. На них мне наплевать. У каждого на столе ярлычок есть типа "Обновить пакет документов". Если что - он его щелкает и получает исходный комплект с сервера. А на сервер я выкладываю чистенькие, хорошенькие. Из них после сборки и перепаковки даже ни кто макрос не запускал. Так что про данные с серверов она и не догадывается.
Вот только не будешь же пересобирать книгу после каждого мелкого исправления. А потому со временем накапливается... этот... мусор что-ли... - файл пухнет и начинает тормозить. Когда совсем уж тормозит - пересобираю книгу.

Бред-то в том, что вот только что собрал я книгу и сразу сохранил. Макрос не запускал. Копирую в рабочую папку. Открываю. Ни чего не трогая сохраняю. Файл увеличился с 25 до 37 kB.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList