Прошу помощи если не в настройках EXCELя, то в возможном переоборудовании модели моего документа. Имеется около 100 страниц с исходными данными ( а также формулами ВПР, умножения и сложения, не более 150 строк на каждом). Также есть один большой лист с прайсом и картинками. На него ссылаются предыдущие листы и получают цену на соответствующую позицию. Также есть приличная кучка макросов для объединения исходных листов(это списки закупок) в произвольном составе и количестве. В процессе создания этот документ разростался и сейчас его размер около 3,5 МБ. Сохраняется он около 20-30 секунд, что уже весьма неприятно. Чтобы выяснить, кто виноват в долгом сохранении проделал следующее: - очистил все данные на листе(полностью, просто удалил весь диапазон со сдвигом) - размер уменьшился, но сохранение по прежнему медлительное. - удалил все листы списков закупок и скриптом нагенерил новых 100 шт - аналогично, долго сохраняет. - скопировал все исходные листы в один (это только для пробы, в таком виде было бы жутко неудобно работать) - и документ сохраняется за 2-3 секунды. Переход на офис 2007 буду рассматривать в крайнем случае, хоть и в XLSB это происходит без задержек. В общем, основная причина - большое количество листов. Для прикола создал новый документ с 300 пустыми страницами. Его размер составил около 0,8 МБ и сохранялся он почти минуту. Не годится!
Прошу помощи если не в настройках EXCELя, то в возможном переоборудовании модели моего документа. Имеется около 100 страниц с исходными данными ( а также формулами ВПР, умножения и сложения, не более 150 строк на каждом). Также есть один большой лист с прайсом и картинками. На него ссылаются предыдущие листы и получают цену на соответствующую позицию. Также есть приличная кучка макросов для объединения исходных листов(это списки закупок) в произвольном составе и количестве. В процессе создания этот документ разростался и сейчас его размер около 3,5 МБ. Сохраняется он около 20-30 секунд, что уже весьма неприятно. Чтобы выяснить, кто виноват в долгом сохранении проделал следующее: - очистил все данные на листе(полностью, просто удалил весь диапазон со сдвигом) - размер уменьшился, но сохранение по прежнему медлительное. - удалил все листы списков закупок и скриптом нагенерил новых 100 шт - аналогично, долго сохраняет. - скопировал все исходные листы в один (это только для пробы, в таком виде было бы жутко неудобно работать) - и документ сохраняется за 2-3 секунды. Переход на офис 2007 буду рассматривать в крайнем случае, хоть и в XLSB это происходит без задержек. В общем, основная причина - большое количество листов. Для прикола создал новый документ с 300 пустыми страницами. Его размер составил около 0,8 МБ и сохранялся он почти минуту. Не годится!Nibiru
Тем более что инфа на них дублируется из общего прайса
Quote (Nibiru)
медлительное сохранение большого количества страниц - это приговор?
У меня файл сохранялся 3,34 секунды. У меня недорогой ноут Asus, 2Гига оперативки, ОСь 7, Excel 2003 У Вас на каждом из 100 листов волатильная функция ЯЧЕЙКА, а в прайсе огромное количество текстовых функций конкатенации. Из-за этого может тормозить. Но если у меня так шустро работает - то присмотритесь к Вашему железу
Не получил ответа на вопрос:
Quote (Serge_007)
В чём необходимость такого количества листов?
Тем более что инфа на них дублируется из общего прайса
Quote (Nibiru)
медлительное сохранение большого количества страниц - это приговор?
У меня файл сохранялся 3,34 секунды. У меня недорогой ноут Asus, 2Гига оперативки, ОСь 7, Excel 2003 У Вас на каждом из 100 листов волатильная функция ЯЧЕЙКА, а в прайсе огромное количество текстовых функций конкатенации. Из-за этого может тормозить. Но если у меня так шустро работает - то присмотритесь к Вашему железуSerge_007
Не получил ответа на вопрос: Цитата, Serge_007 писал(а): В чём необходимость такого количества листов?
Таким образом удобно работать с исходными списками, редактировать их, составлять новые.
Очень странно, что у вас не тормозит сохранение. А железо неплохое - E4500 Core2Duo и 1 гиг оперативки - хламом тяжело назвать.
Не могли бы вы проверить еще 1 файлик? там будет 300 пустых листов и ни единого макроса. У меня он сохраняется около 25 сек. WinXP SP3. Антивир настроен на исключение проверки рабочей папки. Замечено, что процесс сохранения сопровождается высокой активностью винчестера. Данный эффект есть на 4-х машинах (остальные более слабые). И кстати, чем вы с такой точностью измеряете время сохранения документа?
Quote (Serge_007)
Не получил ответа на вопрос: Цитата, Serge_007 писал(а): В чём необходимость такого количества листов?
Таким образом удобно работать с исходными списками, редактировать их, составлять новые.
Очень странно, что у вас не тормозит сохранение. А железо неплохое - E4500 Core2Duo и 1 гиг оперативки - хламом тяжело назвать.
Не могли бы вы проверить еще 1 файлик? там будет 300 пустых листов и ни единого макроса. У меня он сохраняется около 25 сек. WinXP SP3. Антивир настроен на исключение проверки рабочей папки. Замечено, что процесс сохранения сопровождается высокой активностью винчестера. Данный эффект есть на 4-х машинах (остальные более слабые). И кстати, чем вы с такой точностью измеряете время сохранения документа?Nibiru
В общем провел еще пару испытаний: 1- запустил свежеустановленную на то же железо WinXP и в портабельном офисе 2003 получил те же самые тормоза при сохранении. 2- запустил Win7 на VirtualBox'е из-под привычной WinXp, попробовал сохранить файл в 2003 Офисе (портабельном) и получился очень хороший результат: 300pages практически мгновенно, а большая база - не более 3-х секунд. Переходить на 7-ку ради одного этого документа я не буду. Но стоит наверное поразбираться с кешированием файлов, если это вообще хоть как-нибудь настраивается в WinXP.
Еще 1 тест - поставил на WinXP RAMдиск (Gavotte Ramdisk with GUI) и скопировал на свежеформатированный диск мои документы. Сохранение моментальное - при включенном автообновлении TotalCommander'а даже не заметно появления временного файла со случайным именем, в который EXCEL производит сохранение.
PS.Еще вопрос на засыпку. Нарвался на необъяснимое - файлик с 300 страницами я пересохранил в 2007 офисе и он стал гораздо меньше (160 КБ), а вот его копия, которая имеет один VBA модуль с одной процедурой - никакими способами пересохранения в 2007 и 2003 офисах не удается сделать меньше 600 КБ. Идем далее. Сохраняю оба документа в формате XLSM - переименовываю в ZIP и нахожу в бОльшем файлик vbaProject.bin размером аж 450 килобайт! это один несчастный модуль в котором написано: [vba]
Code
Private Sub manysheets() Dim i As Long For i = 1 To 100 Worksheets.Add Next End Sub
[/vba] Выходит, что если в документе есть макросы, то по умолчанию в каждом листе есть какие-то обертки или обработчики, которых не видно в окне исходного кода. А если в документе 300 листов - то при его сохранении неоптимальный офис в неоптимальной винде много раз обращается к сохраняемому файлу( ну да, а зачем кешировать, куда спешить то?) и следовательно - тарахтение винчестера и мучительная задержка. Что скажут профи по этому поводу? Два образца с макросом и без прикрепляю сюда
В общем провел еще пару испытаний: 1- запустил свежеустановленную на то же железо WinXP и в портабельном офисе 2003 получил те же самые тормоза при сохранении. 2- запустил Win7 на VirtualBox'е из-под привычной WinXp, попробовал сохранить файл в 2003 Офисе (портабельном) и получился очень хороший результат: 300pages практически мгновенно, а большая база - не более 3-х секунд. Переходить на 7-ку ради одного этого документа я не буду. Но стоит наверное поразбираться с кешированием файлов, если это вообще хоть как-нибудь настраивается в WinXP.
Еще 1 тест - поставил на WinXP RAMдиск (Gavotte Ramdisk with GUI) и скопировал на свежеформатированный диск мои документы. Сохранение моментальное - при включенном автообновлении TotalCommander'а даже не заметно появления временного файла со случайным именем, в который EXCEL производит сохранение.
PS.Еще вопрос на засыпку. Нарвался на необъяснимое - файлик с 300 страницами я пересохранил в 2007 офисе и он стал гораздо меньше (160 КБ), а вот его копия, которая имеет один VBA модуль с одной процедурой - никакими способами пересохранения в 2007 и 2003 офисах не удается сделать меньше 600 КБ. Идем далее. Сохраняю оба документа в формате XLSM - переименовываю в ZIP и нахожу в бОльшем файлик vbaProject.bin размером аж 450 килобайт! это один несчастный модуль в котором написано: [vba]
Code
Private Sub manysheets() Dim i As Long For i = 1 To 100 Worksheets.Add Next End Sub
[/vba] Выходит, что если в документе есть макросы, то по умолчанию в каждом листе есть какие-то обертки или обработчики, которых не видно в окне исходного кода. А если в документе 300 листов - то при его сохранении неоптимальный офис в неоптимальной винде много раз обращается к сохраняемому файлу( ну да, а зачем кешировать, куда спешить то?) и следовательно - тарахтение винчестера и мучительная задержка. Что скажут профи по этому поводу? Два образца с макросом и без прикрепляю сюдаNibiru