макрос для создания документа Word из данных в Excel - PullRequest
0 голосов
/ 31 мая 2019

Я хочу создать документ Word из данных в определенном столбце в Excel ... такой, что у меня будет N страниц документа Word для N записей в Excel ...

Я также хочу настроить положение этих данных в слове .....

Например, скажем, первые данные из Excel должны присутствовать на 1-й странице текстового документа в позиции 10 см сверху и 5 см слева.

Я пробовал макрос, и он генерирует слово с данными из определенной ячейки Excel.

Но не удалось найти данные следующей ячейки на новой странице и настроить ее положение.

Option Explicit

Sub Create_New_WordDoc()
Dim wsApp As Word.Application

Set wsApp = CreateObject("Word.Application")
With wsApp
        .Visible = True
        .Documents.Add
End With

Set wsApp = Nothing
End Sub

1 Ответ

0 голосов
/ 31 мая 2019

Вы можете создать слово «шаблон» с ключевым текстом для поиска и замены.Вот макрос из Excel, ваше слово doc будет содержать текст между << и >>, и вы будете искать и заменять

Sub Button5_Click()

Dim wApp As Word.Application
Dim wDoc As Word.Document
Set wApp = CreateObject("Word.Application")
FNameQ = Range("E24").Value
Dim FnameP As String
FnameP = " C OF C"
Dim FName As String
FName = FNameQ & FnameP
wApp.Visible = True

Set wDoc = wApp.Documents.Open("LOCATION OF FILE\XXXX.doc")

With wDoc
    .Application.Selection.Find.Text = "<<CUSTNAME>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("E22")
    .Application.Selection.EndOf

    .Application.Selection.Find.Text = "<<PONUM>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("E23")
    .Application.Selection.EndOf

    .Application.Selection.Find.Text = "<<PARTNUM>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("E24")
    .Application.Selection.EndOf

    .Application.Selection.Find.Text = "<<DRAWNUM>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("E25")
    .Application.Selection.EndOf

    .Application.Selection.Find.Text = "<<DRAWREV>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("E26")
    .Application.Selection.EndOf

    .Application.Selection.Find.Text = "<<PARTDESC>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("E27")
    .Application.Selection.EndOf

    .Application.Selection.Find.Text = "<<MATERIAL>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("E28")
    .Application.Selection.EndOf

    .Application.Selection.Find.Text = "<<SHIPDATE>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("E29")
    .Application.Selection.EndOf

    .Application.Selection.Find.Text = "<<NAME>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("E31")
    .Application.Selection.EndOf

    .Application.Selection.Find.Text = "<<TITLE>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("E32")
    .Application.Selection.EndOf

    .Application.Selection.Find.Text = "<<SHIPDATE>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("E29")
    .Application.Selection.EndOf

    .SaveAs2 Filename:=FName, _
    FileFormat:=wdFormatXMLDocument, AddtoRecentFiles:=False
End With



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