このマクロが関連するフィールドから検索および置換するテキストを含むdocxテンプレートに基づいて、Excelファイルの各行を新しいpdfファイルにepxortしようとしています。優れたシートにExcel-VBA Find.replace with loopが正しく動作しない
問題はコードが最初のループで正しく機能することです。最初のループの後、1.pdfファイルがexcelの正しいフィールドでエクスポートされますが、テンプレートdocxファイルがExcelのデータとともに保存され、結果として後のループが正しく機能しなくなります。何らかの理由で、次の行のすべてのExcelフィールドがすべてテンプレートの先頭に追加されます。
このコードを修正して、ループが正しく実行されるようにしてください。欲望の結果は、Excelの各行は新しいpdfファイルにのみエクスポートされ、テンプレートdocxはそのまま保持されます。
ありがとうございました。代わりにtest.docx用ワードテンプレートtest.dotxの
Sub ReplaceText()
Dim wApp As Word.Application
Dim wDoc As Word.Document
Dim z As Integer
Set wApp = CreateObject("Word.Application")
wApp.Visible = True
For z = 3 To 6
Set wDoc = wApp.Documents.Open("D:\test.docx")
With wDoc
.Application.Selection.Find.Text = "TIEU_DE"
.Application.Selection.Find.Execute
.Application.Selection = Range("B" & z)
.Application.Selection.EndOf
.Application.Selection.Find.Text = "ENGLISH"
.Application.Selection.Find.Execute
.Application.Selection = Range("C" & z)
.Application.Selection.EndOf
.Application.Selection.Find.Text = "tenTG"
.Application.Selection.Find.Execute
.Application.Selection = Range("D" & z)
.Application.Selection.EndOf
.Application.Selection.Find.Text = "Noidung"
.Application.Selection.Find.Execute
.Application.Selection = Range("E" & z)
.Application.Selection.EndOf
.SaveAs2 "D:\test.pdf", 17
.Close SaveChanges = False
End With
Next z
End Sub
私の問題は次のように解決されています。まず、 ".Close SaveChanges:= False"を使用します。第2に、 "docx"の代わりに "dotx as"テンプレートファイル形式を使用する –