У Дженнифер есть документ Word, в котором есть ссылки на сотни других документов. Теперь она хочет заменить каждую из этих ссылок фактическим документом, на который есть ссылка. (Другими словами, она хочет встроить документы, на которые есть ссылки.) Она задается вопросом, есть ли глобальный способ сделать это вместо того, чтобы делать каждый документ отдельно.

Решение зависит от того, как именно у вас есть другие документы, связанные с вашим текущим документом. Если вы вставили содержимое другого файла с помощью команды «Текст из файла» (вкладка «Вставить» | Объект | Текст из файла) и выбрали вставку в качестве ссылки, то содержимое файла фактически добавляется с использованием поля INCLUDETEXT. Как и в случае с любым другим полем, вы можете отсоединить поле следующим образом:

  1. Выберите поле. (Или, если у вас много полей, нажмите Ctrl + A, чтобы выделить весь документ.)

  2. Нажмите Ctrl + Shift + F9. Word отсоединяет поля, оставляя текст, который они представляют.

Если ваши документы связаны с помощью гиперссылок, то процесс будет немного сложнее. Причина проста: гиперссылка — это только указатель на другой документ, а не фактическое содержимое этого другого документа. Это означает, что вам нужно придумать способ открыть другой документ, получить его содержимое и вставить его в текущий документ вместо гиперссылки.

Этот тип работы идеально подходит для макроса. В следующем примере фактически выполняется обратный переход по каждой гиперссылке и вставка файлов:

Sub InsertDocs()

Dim aRange As Range     Dim J As Long

Set aRange = ActiveDocument.Range     ' Go backwards because hyperlinks are deleted as processed     For J = aRange.Hyperlinks.Count to 1 Step -1         With aRange.Hyperlinks(J)

' Process only hyperlinks to documents             If InStr(.Address, ".doc") > 0 Then                 .Range.Select                 On Error GoTo noFile                 .Follow                 On Error GoTo 0                 ActiveDocument.Range.Copy                 ActiveDocument.Close                 Selection.Paste             End If             GoTo nextFile noFile:

On Error GoTo 0             MsgBox "Cannot open file " & .Address nextFile:

End With     Next J End Sub

Обратите внимание, что макрос проверяет гиперссылку, чтобы убедиться, что она содержит буквы «.doc». Это не означает, что он ограничен только старыми файлами .DOC, поскольку тест также будет соответствовать буквам «.docx» и «.docm».

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (6824) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365.