Запуск последовательных вложенных файлов в MS Word через Excel VBA

#excel

#excel

Вопрос:

Я новичок в VBA и пытаюсь экспортировать данные из формы Excel в цитату MS Word, используя content control, в таблицы с одним столбцом. Я нашел этот код vba в Интернете, который дает мне то, что я хочу, однако скрипт открывает и закрывает документ Word каждый раз, когда я применяю подраздел. Я хочу, чтобы они выполнялись последовательно до последней команды сохранения.
Можете ли вы помочь мне запустить второй подраздел, не закрывая и не открывая документ Word каждый раз

Спасибо Dim

 Sub Service_Desc_toWord()

Dim wordApp As Word.Application
    Dim wDoc As Word.Document
    Dim r As Integer
    
    Set wordApp = CreateObject("word.application")
    Set wDoc = wordApp.Documents.Open(ThisWorkbook.Path amp; "/" amp; Range("O1").Value amp; ".docx")
    wordApp.Visible = True
    r = 43
    
    For i = 131 To 143
    
        wDoc.ContentControls(i).Range.Text = Sheets("Configuration").Cells(r, 4)
        'Sheets("Configuration").Cells(r,4)=wDoc.ContentCOntrols(i).Range.Text
        r = r   1
        
    Next i
    
    wordApp.Documents.Close
    wordApp.Quit
    Service_Qty_toWord
End Sub

Sub Service_Qty_toWord()

Dim wordApp As Word.Application
    Dim wDoc As Word.Document
    Dim r As Integer
    
    Set wordApp = CreateObject("word.application")
    Set wDoc = wordApp.Documents.Open(ThisWorkbook.Path amp; "/" amp; Range("O1").Value amp; ".docx")
    wordApp.Visible = True
    r = 43
    
    For i = 144 To 156
    
        wDoc.ContentControls(i).Range.Text = Sheets("Configuration").Cells(r, 1)
        'Sheets("Configuration").Cells(r,1)=wDoc.ContentCOntrols(i).Range.Text
        r = r   1
        
    Next i
    
    wordApp.ActiveDocument.SaveAs2 Filename:="Quote Letter", FileFormat:= _
        wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
        :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
        :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
        SaveAsAOCELetter:=False, CompatibilityMode:=15

End Sub
  

Ответ №1:

     Sub Service_Desc_toWord()
Dim wordApp As Word.Application
Dim wDoc As Word.Document
Dim r As Integer
Set wordApp = CreateObject("word.application")
Set wDoc = wordApp.Documents.Open(ThisWorkbook.Path amp; "/" amp; Range("O1").Value amp; ".docx")
wordApp.Visible = True
r = 43
For i = 131 To 143
wDoc.ContentControls(i).Range.Text = Sheets("Configuration").Cells(r, 4)
'Sheets("Configuration").Cells(r,4)=wDoc.ContentCOntrols(i).Range.Text
r = r   1
Next i
r = 43
For i = 144 To 156
wDoc.ContentControls(i).Range.Text = Sheets("Configuration").Cells(r, 1)
'Sheets("Configuration").Cells(r,1)=wDoc.ContentCOntrols(i).Range.Text
r = r   1
Next i
wordApp.ActiveDocument.SaveAs2 Filename:="Quote Letter", FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=15
wordApp.Documents.Close
wordApp.Quit
End Sub
  

Комментарии:

1. Привет, спасибо, Редис. Работает приятно