私はExcelからWordにデータを転送するコードを作成しています。それを試すために、私は配列リストを使ってコードを作りました。単語の各配列をチェックし、リストの隣に文字列を配置するにはしかし、それはループ内の配列を取っていません。forループが最初のステーションに対して継続しないのはなぜですか?
Sub CreateNewWordDoc()
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim i As Integer
Dim arr(12)
arr(0) = "(249_L), 38,7 %"
arr(1) = "(248_R), 38,7 %"
arr(2) = "(249_M), 38,7 "
arr(3) = "(3560), 38,7 "
arr(4) = "(3550), 38,7 %"
arr(5) = "(349_), 38,7 %"
arr(6) = "(348_), 38,7 %"
arr(7) = "(451), 38,7 %"
arr(8) = "(450L), 38,7 "
arr(9) = "(450R), 38,7 "
arr(10) = "(151), 38,7 %"
arr(11) = "(150L), 38,7 %"
arr(12) = "(150R), 38,7 %"
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open("E:\ShareDrive_Ruehl\full-flexible-MBS-models_report\example-report\FullFlexibleGearbox - Copy (2).docx")
For i = 0 To 12
wrdDoc.Application.Selection.Find.Text = arr(i)
wrdDoc.Application.Selection.Find.Execute
wrdDoc.Application.Selection.InsertBefore arr(i) & "test"
Next
End Sub
図のように出力が表示されています。私の意図は、 "arr(i)
"を見つけて、その前にarr(i)
というテキストを置くことでした。ただ、array (0)
と貼り付けているのはarr(i)
のテキストです。ここで
現在の単語を使用する代わりに、単語の新しいインスタンスを作成する具体的な理由はありますか?結局のところ、これは単語vbaです。また、 'Selection'でFindを使う場合は、' Next'の前に常に 'Selection.Collapse wdCollapseEnd'を使います。 – LocEngineer
私はそれをExcelで使用していますので、私はそれを開いて使用しています。 –