Копировать диапазон ячеек в документ Word на основе идентификаторов из другого столбца - PullRequest
1 голос
/ 10 марта 2020

Итак, у нас есть этот стол, который мы используем в офисе. Я изменил имя столбца и его содержимое в целях конфиденциальности.

enter image description here

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

т.е. новый документ Word создается для ID1. Содержимое - это все имена и фамилии только для этого ID1, за исключением имени столбца. Другой документ Word будет создан для следующего доступного идентификатора, пока все идентификаторы не будут иметь свой собственный документ,

Пока что это то, что я получил:

Sub test()

Dim copyRng As Range
Dim lastrow As Long
lastrow = Cells(Rows.Count, "A").End(xlUp).Row

Set copyRng = Range("B2:C" & lastrow)

Range("B2:C" & copyRng.Rows.Count).Select
Selection.Copy
'Declare Word Variables
    Dim WrdApp As Word.Application
    Dim WrdDoc As Word.Document
'Create a new instance of Word
    Set WrdApp = New Word.Application
        WrdApp.Visible = True
        WrdApp.Activate
'Create a new Document in the Word Application
    Set WrdDoc = WrdApp.Documents.Add
        WrdDoc.Activate
        WrdDoc.Range(WrdDoc.Characters.Count - 1).Paste
End Sub

Кажется, я не могу копировать только строки для указанного c ID. Кто-нибудь может предложить лучшее решение скопировать только ячейки на основе идентификаторов?

1 Ответ

0 голосов
/ 11 марта 2020

Я тем временем упростил свою проблему.

Сначала я выбираю ячейки, которые хочу скопировать в документ Word.

Затем я запускаю этот код:

Selection.Copy
'Declare Word Variables
    Dim WrdApp As Word.Application
    Dim WrdDoc As Word.Document
'Create a new instance of Word
    Set WrdApp = New Word.Application
        WrdApp.Visible = True
        WrdApp.Activate
'Create a new Document in the Word Application
    Set WrdDoc = WrdApp.Documents.Add
        WrdDoc.Activate
        With WrdDoc.Range(WrdDoc.Characters.Count - 1).Characters.Last
        .PasteExcelTable False, True False
             With .Tables(1)
                  .AutoFitBehavior wdAutoFitWindow
             End With
                  .InsertAfter Chr(1)
        End With

Таким образом, мне просто нужно выделить ячейки, которые я хочу скопировать в Word, и запустить макрос. Макрос создаст для меня новый документ Word.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...