|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.11.2010, 08:09 | #1 |
Новичок
Джуниор
Регистрация: 12.11.2010
Сообщений: 1
|
Замедление работы скрипта в чём причина?
Здравствуйте всем!
1.Оперативы свободной достаточно, Проц загружен Wordом на 100% Смысл работы скрипта такой создаём документ, открваем ещё два одинаковых шаблона с полями для ввода :цикл первый шаблон заполняем выделяем вставляем в документ из второго шаблона копируем в первый(чтобы не стирать все поля) и к началу цикла . При выполнении скрипта идёт замедление выполнения особенно после 40-го заполнения шаблона ...хотя данные примерно одинаковы число 1-10 1:22 мин:сек 10-20 0:46 20-30 0:55 30-40 1:16 40-50 1:50 50-60 2:01 60-70 2:40 70-80 2:53 80-90 3:23 90-100 3:34 100-110 3:57 110-120 4:22 120-130 4:31 130-140 5:01 140-150 5:31 т.е. на каждый следующий десяток выводит медленней Примерно так if not OpenWordDocI(WrdApp, WrdDoc, "C:\", "Normal.dot") then MsgBox "Не могу открыть файл Normal.dot!" end if WrdApp.Options.CheckGrammarAsYouTyp e = False WrdApp.Options.CheckGrammarWithSpel ling = False WrdApp.Options.CheckSpellingAsYouTy pe = False WrdApp.Options.UpdateLinksAtOpen = False WrdApp.Options.BackgroundSave = False if not OpenWordDocI(WrdApp, WrdDocS, "C:\", " Заявление.dot") then MsgBox "Не могу открыть шаблон !" end if if not OpenWordDocI(WrdApp, WrdDocShablon, "C:\", "Заявление.dot") then MsgBox "Не могу открыть шаблон !" end if WrdApp.Visible = False '1 - нач WrdDocS.Variables.Item("Z_DOG_END") .Value = """""___""""_________ 20 ____ г." WrdDocS.Variables.Item("Z_DOG_BEG") .Value = """""___""""_________ 20 ____ г." WrdDocS.Fields.Update WrdDocS.Activate WrdDocS.Fields.Unlink WrdDocS.Select WrdApp.Selection.Copy WrdDoc.Activate WrdApp.Selection.PasteAndFormat (wdPasteDefault) '1 - кон '2 - нач WrdApp.Selection.InsertBreak; WrdDocShablon.Activate; WrdDocShablon.Select; WrdApp.Selection.Copy; WrdDocS.Activate; WrdDocS.Select; WrdApp.Selection.PasteAndFormat (wdPasteDefault); WrdApp.Selection.EndKey; '2 - кон далее идёт повторение кусков 1 и 2 но с другими данными и так раз 200 (скрипт формируется динамически в другой программе) WrdDocS.Saved = True; WrdDocS.Close; WrdDocShablon.Saved = True; WrdDocShablon.Close; WrdApp.Selection.EndKey SetWordVisibleI(WrdApp) 2. Какие есть идеи можно ли побороть замедление либо оптимизировать скрипт ? Последний раз редактировалось Alkov74; 12.11.2010 в 08:27. |
12.11.2010, 08:23 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Может быть из-за того что буфер клипбоарда набивается?
Поищи как очищать скопированное в буфере.
I'm learning to live...
|
12.11.2010, 20:32 | #3 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
нет времени анализировать скрипт, но попробуй в конце цикла (перед Next) поставить оператор DoEvents, чтобы дать возможность системе отвечать на запросы. А вообще, макросы штука не самая быстрая.
Лучше день потерять — потом за пять минут долететь!©
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
в чём причина ошибки - mysql_num_rows(): supplied argument is not a valid | vedro-compota | PHP | 6 | 23.09.2010 16:12 |
В чём причина зависания компьютера? | Niels | Компьютерное железо | 8 | 16.09.2010 00:15 |
ajax индикатор работы скрипта | ssdm | JavaScript, Ajax | 3 | 08.04.2010 17:04 |
Подскажите в чём причина :( | Cannibal | Компьютерное железо | 3 | 16.02.2009 23:27 |