У меня есть проект, который принимает несколько документов в качестве входов, выполняет некоторую обработку на них и создает несколько новых документов в конце. В настоящее время у меня возникают проблемы с вставкой содержимого из одного документа Word в другой. Следующий фрагмент кода казалось уместным:VBA Word 2010 Paste Error/No Wait Command
Set refOrigin = FindReference(OriginDoc)
Set refDest = PasteDoc.Range(PasteDoc.Content.Start, PasteDoc.Content.End)
refDest.Collapse wdCollapseEnd
refOrigin.Copy
refDest.Paste
При выполнении этого кода, я иногда получить ошибку времени выполнения 4198, Command Failed
в пасте строку кода. Однако, когда я перехожу к отладчику, я вижу, что оба refDest и refOrigin являются допустимыми диапазонами. Кроме того, когда я просматриваю код по строкам, он работает. Тем не менее, я могу сказать, что в том случае, когда он не удался, он уже вставил внедренный документ Word.
Я провел некоторое исследование по этим проблемам, и я считаю, что существует некоторая проблема с кодом, который выполняется для быстрого обмена буфером обмена, чтобы не отставать от него. Это имеет смысл для меня, потому что, когда я запускаю макрос из документа на сетевом диске, он работает без сбоев.
Я думал, что могу просто добавить команду wait с Application.Wait
, но оказывается, что Word 2010 не поддерживает эту команду; это только в Excel.
У кого-нибудь есть идеи относительно корня этой проблемы, возможных решений или любого способа дать команде Word 2010 команду wait? Благодарю.
проверка [это] (http://stackoverflow.com/questions/16443655/word-deleting-tabe-column-via-vba-macros-gives-an-error/16444492#16444492) подобный вопрос и ответ, который решил проблему ... –
Спасибо. Не знаю, как я пропустил этот. –