image

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

В этой статье мы будем использовать метод Early Binding для создания объекта Word application вместо использования позднего связывания. Подробнее об этом можно прочитать здесь.

Процесс копирования данных Excel в файл Word с помощью Excel VBA Чтобы скопировать данные из Excel в файл Word с помощью VBA, нам, конечно же, сначала нужно открыть приложение Word. Затем добавьте к нему документ (если хотите новый документ). Скопируйте данные из файла Excel. Выделите абзац в документе и вставьте его. Наконец, сохраните и закройте документ. Каждый из этих шагов можно легко выполнить из Excel. Вам не нужно будет взаимодействовать с документом Word.

Давайте начнем с примера, не вдаваясь в теорию. Потому что Железный Человек сказал: «Иногда нужно бежать, прежде чем ты научишься ходить».

Пример: вставка данных Excel в Word с помощью VBA. Приведенный ниже код является примером того, как вы можете скопировать некоторый диапазон Excel, вставить его в новый документ Word и сохранить его на диске, чтобы использовать позже

'VBA Code To Write to Copy data from Excel to A Document

Sub ExcelToWord()

'Using Early Binding

Dim wordApp As Word.Application

Dim mydoc As Word.Document





'Creating a new instance of word only if there no other instances

Set wordApp = New Word.Application





'Making word App Visible

wordApp.Visible = True



'Creating a new document

Set mydoc = wordApp.Documents.Add()



'copying the content from excel sheet

ThisWorkbook.Worksheets("sheet1").Range("A1:g20").Copy

'Pasting on the document

mydoc.Paragraphs(1).Range.PasteExcelTable _

LinkedToExcel:=False, _

WordFormatting:=False,

RTF:=False

'saving the document

mydoc.SaveAs2 "MyDoc"



'closing the document

mydoc.Close



'Emptying the Clipboard

CutCopyMode = False



End Sub

Пояснение к Кодексу:

Я объяснил каждый шаг самого кода с помощью комментариев, но давайте немного поговорим о строках, которые мы использовали в этом подразделе.

‘Созданные переменные приложения Word и типа документа Dim wordApp As Word.Application Dim mydoc As Word.Document Здесь мы объявили две переменные требуемых типов. Мы можем это сделать, потому что уже добавили ссылку на слово «приложение». Вы можете сделать это, перейдя к инструментам в меню. Опция «Найти ссылки», а затем поищите слово «ссылка».

image

_ ‘Создание нового экземпляра слова только в том случае, если других экземпляров нет _Set wordApp = New Word.Application ‘Создание видимости приложения Word wordApp.Visible = True _ _’Создание нового документа _Set mydoc = wordApp.Documents.Add ( ) _ В первой строке выше мы назначаем переменной wordApp объект типа Word.App, используя ключевое слово New. Это откроет приложение Word.

Во второй строке мы делаем видимым слово приложение, чтобы с ним можно было работать.

В следующей строке мы добавляем новый документ в текстовое приложение с помощью функции Word.Documents.Add (). Это хранится в переменной mydoc.

_ ‘копирование содержимого из Excel Sheet_ ThisWorkbook.Worksheets («sheet1»). Range («A1: G20»). Copy Здесь мы просто копируем диапазон из Excel. Вы, должно быть, делали это раньше. Он хранится в буфере обмена.

‘Вставка в документ mydoc.Paragraphs (1) .Range.PasteExcelTable _LinkedToExcel: = False, _WordFormatting: = False, _ _RTF: = False Мы используем метод PasteExcelTable класса Paragraph.Range mydoc для вставки данных из буфер обмена.

сохранение документа mydoc.SaveAs2 «MyDoc» _ _’закрытие документа mydoc.Close ‘Очистка буфера обмена CutCopyMode = False Мы сохраняем документ с именем MyDoc. Затем закрываем документ с помощью функции Close. Наконец, мы освобождаем буфер обмена, чтобы его могли использовать другие.

Так что да, ребята, вот как вы можете создать новый документ Word и скопировать в него данные Excel с помощью VBA. Я не вдавался в подробности, так как это сделало бы статью утомительно длинной. Это было только для того, чтобы узнать, как можно вставить текст в документ Word через Excel. Надеюсь, это помогло вам понять процесс. Если у вас есть какие-либо вопросы по этой статье, вы можете связаться со мной через раздел комментариев ниже.

Статьи по теме:

link: / applications-word-outlook-in-vba-Getting-started-with-excel-vba-userforms [Начало работы с пользовательскими формами Excel VBA] | * Я объясню, как создать форму в Excel, как использовать Панель инструментов VBA, как обрабатывать вводимые пользователем данные и, наконец, как хранить вводимые пользователем данные. Мы рассмотрим эти темы на одном примере и пошаговом руководстве.

link: / general-themes-in-vba-vba-variables-in-excel [переменные VBA в Excel] | * VBA означает Visual Basic для приложений.

Это язык программирования от Microsoft. Он используется с приложениями Microsoft Office, такими как MSExcel, MS-Word и MS-Access, тогда как переменные VBA являются конкретными ключевыми словами.

link: / general-themes-in-vba-excel-vba-variable-scope [Область переменных Excel VBA] | * Во всех языках программирования у нас есть спецификаторы доступа к переменным, которые определяют, откуда можно получить доступ к определенной переменной. Excel VBA — не исключение. VBA тоже имеет спецификаторы области видимости.

link: / cells-range-rows-and-columns-in-vba-what-is-the-difference-between-byref-and-byval-arguments-vba-интервью-question [ByRef and ByVal Arguments] | Когда аргумент передается как аргумент ByRef в другую подпрограмму или функцию, отправляется ссылка на фактическую переменную. Любые изменения, внесенные в копию переменной, будут отражены в исходном аргументе.

link: / files-workbook-and-worksheets-in-vba-delete-sheet-without-confirm-prompts-using-vba-in-microsoft-excel [Удалять листы без запросов подтверждения с помощью VBA в Microsoft Excel] | Поскольку вы удаляете листы с помощью VBA, вы знаете, что делаете.

Вы хотите, чтобы Excel не показывал это предупреждение и не удалял этот проклятый лист.

link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Добавить и сохранить новую книгу с помощью VBA в Microsoft Excel 2016] | В этом коде мы сначала создали ссылку на объект книги. А затем мы инициализировали его новым объектом книги. Преимущество этого подхода заключается в том, что вы можете легко выполнять операции с этой новой книгой. Например, сохранение, закрытие, удаление и т. Д. Display A Message On Строка состояния Excel VBA * | Строку состояния в Excel можно использовать как монитор кода. Когда ваш код VBA длинный и вы выполняете несколько задач с помощью VBA, вы часто отключаете обновление экрана, чтобы не видеть мерцания экрана.

link: / general-themes-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Отключить предупреждающие сообщения с помощью VBA в Microsoft Excel 2016] | * Этот код отключает не только VBA предупреждения, но также увеличивает временную эффективность кода. Посмотрим как.

Популярные статьи:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-вашу-продуктивность [50 комбинаций клавиш Excel для повышения вашей продуктивности] | Выполняйте свою задачу быстрее. Эти 50 ярлыков заставят вас работать в Excel еще быстрее.

link: / формулы-и-функции-введение-функции-vlookup [Функция ВПР в Excel] | Это одна из наиболее часто используемых и популярных функций Excel, которая используется для поиска значений из разных диапазонов и листов. link: / tips-countif-in-microsoft-excel [COUNTIF в Excel 2016] | Подсчитайте значения с условиями, используя эту удивительную функцию. Вам не нужно фильтровать данные для подсчета определенных значений.

Функция Countif важна для подготовки вашей приборной панели.

link: / excel-formula-and-function-excel-sumif-function [Как использовать функцию СУММЕСЛИ в Excel] | Это еще одна важная функция приборной панели. Это поможет вам суммировать значения для конкретных условий.