Word Excel VBA Макросы: Как скопировать все данные из документа Word в Excel?

Автор Game, 22 марта 2020, 17:37

Game

Макрос должен запускаться из Excel. Действия макроса:
1) макрос открывает документ Word, выделяет всё в документе и копирует в буфер обмена;
2) затем макрос закрывает документ Word без сохранения и всё это вставляет в Excel.

Без макроса (вручную) я делаю это так: выделяю весь текст в ворде, затем перехожу в эксель, ставлю курсор-рамку в ячейку "A1" и вставляю содержимое буфера обмена. Т.е. использую "копирование / вставку".

Администратор

В пункте 2 укажите полное имя ворд-файла (путь + имя).
В экселе для вставки используется эта опция: вкладка "Главная" - группа "Буфер обмена" - стрелка кнопки "Вставить" - Специальная вставка... - кружок "вставить" - HTML.

Макрос
Sub Макрос()

    Dim ворд As Object, док As Object
    Dim var
   
   
    '1. Запуск ворда.
    Set ворд = CreateObject(Class:="Word.Application")
   
    '2. Открытие ворд-файла.
    var = "C:\Users\User\Desktop\Источник.docx"
    Set док = ворд.Documents.Open(Filename:=var)
   
    '3. Копирование всего содержимого ворд-файла.
    док.Range.Copy
   
    '4. Перемещение курсора-рамки в A1.
    Range("A1").Select
   
    '5. Вставка скопированного в эксель на активный лист в активную ячейку.
    ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False
   
    '6. Очистка буфера обмена, чтобы во время закрытия экселя не было
        ' сообщения, предлагающего сохранить содержимое буфера обмена.
        ' Для этого в буфер копируется первый символ из ворд-файла.
    док.Range.Characters(1).Copy
   
    '7. Закрытие ворд-файла и ворда.
    док.Close SaveChanges:=False
    ворд.Quit

End Sub
[свернуть]

Game

Спасибо, работает.

У меня в ячейках Word есть значения такие как 10-01, 10-02, а макрос вставляет эти числа так: 10.янв, 10.фев.
Это как-то можно исправить?

Администратор

Перед вставкой, в столбце, в который будут вставлены данные, сделайте формат ячеек "Текстовый".
Вручную это делается так: выделите столбец - вкладка "Главная" - группа "Число" - в списке выберите "Текстовый".

Можно ещё в ворде перед данными вставить апостроф: 'число.

Других вариантов нет: отключить автоматическое преобразование в экселе нет возможности - не предусмотрено такой опции.