Часто вам приходится копировать данные из файла Excel в документ Word. Вы можете легко сделать это с помощью макроса. Макрос откроет новый / существующий документ Word, скопирует содержимое, а затем сохранит и закроет документ Word. Посмотрим, как это делается.

Вы можете использовать следующий код — Option Explicit _Sub CreateNewWordDoc ()

Dim i As Integer Dim wrdApp As Object, wrdDoc As Object Set wrdApp = CreateObject («Word.Application»)

wrdApp.Visible = True Установить wrdDoc = wrdApp.Documents.Add With wrdDoc Для i = от 1 до 100 .Content.InsertAfter «Вот пример тестовой строки №» & i .Content.InsertParagraphAfter Next i If Dir («B: \ Test \ MyNewWordDoc.docx ») <>« »Затем убейте« B: \ Test \ MyNewWordDoc.docx ».SaveAs (« B: \ Test \ MyNewWordDoc.docx »)

Close End With wrdApp.Quit Set wrdDoc = Nothing Set wrdApp = Nothing End Sub_ Чтобы скопировать приведенный выше код в свой файл, нажмите Alt + F11 на клавиатуре Слева вы увидите объекты Microsoft Excel. Щелкните правой кнопкой мыши и выберите Вставить Затем нажмите «Модуль». * Скопируйте код в окно кода справа. Теперь давайте посмотрим, как работает этот код. Сначала мы объявляем нужные нам переменные –i как целое число, чтобы увеличивать каждую строку по мере ее заполнения из файла Excel в слово doc. Затем две объектные переменные wrdApp и wrdDoc, wrdApp — это объект Word Application, а wrdDoc — объект Word Document.

Set wrdApp = CreateObject («Word.Application») _ Если Word уже запущен в вашей системе, _CreateObject создаст новый экземпляр Word. Таким образом, эта строка присваивает объектную переменную wrdApp приложению Word, которое вы можете использовать позже в коде .

wrdApp.Visible = True Вновь созданный экземпляр Word не будет виден при создании. Чтобы сделать его видимым, вам нужно установить wrdApp.Visible = True, чтобы он был видимым.

Set wrdDoc = wrdApp.Documents.Add Мы создали новый экземпляр приложения Word, но еще не открыли пустой документ Word. Таким образом, эта команда откроет новый документ Word. Этому новому документу был назначен объект wrdDoc, поэтому мы можем использовать его позже в коде.

Если вы не хотите открывать новую книгу, а открывать существующую книгу, вы можете заменить эту строку на _Set wrdDoc = wrdApp.Documents.Open («B: \ My Documents \ WordDocs \ Doc1.docx») _ Эта строка открывается существующий текстовый документ, который был сохранен в указанном месте.

WrdDoc… .End With Это наш цикл «With», который будет полностью работать с объектом wrdDoc. Как только вы откроете этот цикл, вам не придется снова повторять текст «wrdDoc» в этом цикле. Вы можете напрямую начать с точка («.»)

перед любыми объектами, относящимися к wrdDoc. Этот цикл заканчивается оператором End With. После ввода оператора End With вы не можете ссылаться на объекты после wrdDoc только с «.».

For i = от 1 до 100 .Content.InsertAfter «Вот пример тестовой строки №» & i .Content.InsertParagraphAfter Next i Это цикл «For». Он увеличивается от 1 до 100, и при каждом приращении он вставляет строку с текстом «Вот пример тестовой строки №», а затем добавляет номер приращения. Затем он вставляет разрыв строки / абзаца так, чтобы следующее приращение появилось на следующая строка, как новый абзац.

Таким образом, этот процесс будет повторяться 100 раз, поскольку цикл for устанавливает For i = от 1 до 100. Это результат, который вы получите —

img2

If Dir («B: \ Test \ MyNewWordDoc.Docx») <> «» Then Kill «B: \ Test \ MyNewWordDoc.docx» _ _ .SaveAs («B: \ Test \ MyNewWordDoc.docx») _ _.Close После завершения цикла «For» код проверит, существует ли файл MyNewWordDoc.docx. Если это так, он удалит его. Затем он сохранит новый файл с тем же именем и закроет файл.

wrdApp.Quit Set wrdDoc = Nothing Установить wrdApp = Nothing Слово «приложение» закрывается, а затем 2 созданных объекта будут освобождены или установлены в «Nothing», так что память, занятая этими объектами, будет освобождена. Это весь код, который заботится о копировании содержимого из Excel в Word.

image 48