Я пытаюсь скопировать/вставить форматирование поля в Word. (Microsoft.Office.Interop.Word)Word automation - CopyFormat in loop = slow
Моя цель - скопировать форматирование, обновить поле, вставить форматирование, чтобы применить его к новому контенту. (в моем тестовом коде часть обновления и вставки не указана)
Я заметил, что это очень медленно в большой петле. У меня есть + - 5000 полей в документе Word. После +500 повторений для выполнения одной итерации требуется всего 1,2 секунды (только для кода внизу этого сообщения). После того, как он достигнет 1,2 секунды, продолжительность больше не увеличивается (возможно, что-то связано с буфером).
Может ли кто-нибудь дать мне решение для повышения скорости?
foreach (Field o in m_doc.Fields)
{
if (o.Type == WdFieldType.wdFieldRef)
{
o.Select();
Range r = o.Result;
r.Select();
m_doc.Application.Selection.CopyFormat();
}
}