Макрос должен запускаться из 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
Спасибо, работает.
У меня в ячейках Word есть значения такие как 10-01, 10-02, а макрос вставляет эти числа так: 10.янв, 10.фев.
Это как-то можно исправить?
Перед вставкой, в столбце, в который будут вставлены данные, сделайте формат ячеек "Текстовый".
Вручную это делается так: выделите столбец - вкладка "Главная" - группа "Число" - в списке выберите "Текстовый".
Можно ещё в ворде перед данными вставить апостроф: 'число.
Других вариантов нет: отключить автоматическое преобразование в экселе нет возможности - не предусмотрено такой опции.