J'ai construit un code pour transférer des données d'Excel à Word. Pour essayer cela, j'ai construit un code avec une liste de tableaux. Pour vérifier chaque tableau dans le mot et placez une chaîne à côté de la liste. Mais il ne prend pas le tableau dans la boucle.Pourquoi la boucle for ne continue-t-elle pas pour le premier staement?
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
Je reçois la sortie comme le montre la figure. Mon intention était de trouver "arr(i)
" et placez le texte arr(i)
avant lui. Mais il est juste de trouver array (0)
et de coller le texte arr(i)
.
Y a-t-il une raison spécifique pour laquelle vous créez une nouvelle instance de mot au lieu d'utiliser celle en cours? C'est le mot vba après tout. De plus, si vous utilisez Find avec 'Selection', utilisez toujours' Selection.Collapse wdCollapseEnd' avant votre 'Next'. – LocEngineer
Je l'utilise dans l'excel vba donc je l'utilise pour l'ouvrir. –