Ускорение кода VBA для добавления полей в Word Document. Может быть, с помощью виртуальных объектов вне экрана? - PullRequest
0 голосов
/ 13 апреля 2020

Есть ли способ подготовить виртуальный объект в Word с помощью vba? Я пытаюсь ускорить добавление около 20000+ переменных документа в тело документа с помощью метода Fields.Add.

Selection.Fields.Add Range:=Selection.Range, _
                     Type:=wdFieldEmpty, _
                     Text:="DOCVARIABLE " & DocVar.Name & " ", _
                     PreserveFormatting:=True

Я думаю, что вместо этого добавление их к какому-то «виртуальному абзацу» и добавление документа с этим «виртуальным абзацем» в конце может ускорить процесс.

Дополнительные объяснения и тестирование: (для тех, кто любит чтение)

Добавление 1000 полей DOCVARIABLE в конец моего документа занимает около 14 секунд с Application.Visible = False. На этот раз go экспоненциально увеличивается, чем больше переменных я пытаюсь добавить. Я еще не смог добавить 20000 переменных. С отключенным Application.Visibility я не знаю, произошла ли сбой программы или нет, но 20 минут кажется слишком коротким Это даже не касается добавления переменных в таблицы и применения алгоритмов сортировки, которые я хочу применить после этого. Я также хотел бы, чтобы приложение Application.Visibility было включено, чтобы я мог отображать ход обработки в строке состояния. Но видимость больше, чем утроит мое время обработки.

1000 DocVars = 14s
2000 DocVars = 35s
3000 DocVars = 70s
4000 DocVars = 101s
...
20000 will be unusably slow

Спасибо

Копье

...