Je travaille sur le rapport de roulement. Je dois copier et trouver les données de relèvement pertinentes du fichier Excel et les coller dans la table des mots. J'ai compris les codes àcomment mettre à jour la table dans word?
Pour aller à l'emplacement relavant dans le fichier texte et collez des données dans le document de mot désiré.
Sub CreateNewWordDoc() Dim wrdApp As Word.Application Dim wrdDoc As Word.Document Dim i As Integer Dim arr(12) 'Bearing numbers I need to search 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 'location of my word document Set wrdDoc = wrdApp.Documents.Open("E:\ShareDrive_Ruehl\full-flexible-MBS-models_report\example-report\FullFlexibleGearbox - Copy (2).docx") wrdDoc.Activate wrdApp.Selection.HomeKey unit:=wdStory 'for loop to reach all bearing location For i = 0 To 12 With wrdApp.Selection With .Find .ClearFormatting .MatchWildcards = False .MatchWholeWord = False .Text = arr(i) .Execute End With ' Here is where I need to paste my copied data. .InsertAfter "I can just paste this shit" .HomeKey unit:=wdStory End With Next End Sub
Aller à l'emplacement dans le fichier Excel, trouver les données pertinentes et copier les données relatives à ce sujet et est le code ici pour cela.
Sub CopyToWord() 'Copy the range Which you want to paste in a New Word Document Cells.Find(What:=arr(0), After:=ActiveCell, LookIn:=xlFormulas _ , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate ActiveCell.Offset(2, 0).Range("A1:g8").Select Selection.Copy End Sub
J'ai écrit ces deux codes à fonctionner à partir d'Excel VBA. Mais maintenant, je dois combiner les deux et coller les données copiées à partir du 2ème code à la table qui se trouve dans le 1er code (L'emplacement de l'endroit n'est pas juste après l'endroit où je trouve le mot. le code et peut être mieux compris par les photos ci-dessous.).
Ceci est le code pour moi de sélectionner les données dans le mot où j'ai besoin de remplacer. Je dois écrire même en paroles et le remplacer par les données copiées
Sub pasting()
Dim sSample, rResult As String
sSample = "(450R), 38,7 % "
Set rRange = ActiveDocument.Content
Selection.Find.Execute FindText:=sSample, _
Forward:=True, Wrap:=wdFindStop
Selection.MoveDown unit:=wdLine, Count:=1
Selection.EndKey unit:=wdLine
Selection.MoveRight unit:=wdCharacter, Count:=1
Selection.EndKey unit:=wdLine
Selection.MoveDown unit:=wdLine, Count:=1
Selection.MoveDown unit:=wdLine, Count:=5, Extend:=wdExtend
Selection.MoveLeft unit:=wdCharacter, Count:=5, Extend:=wdExtend
Selection.PasteAndFormat (wdPasteDefault)
End Sub
Malheureusement, Bien que j'ai copié les données ce que je veux, je ne suis pas en mesure d'arriver à la solution. Je ne sais pas comment coller des données dans la table existante.
Cette image explique mieux. J'ai besoin de rechercher des données de roulement 248_R dans Excel et coller cela dans le mot. Ce est le fichier Word
c'est le fichier Excel
Pourquoi ne pas vous (au lieu de ce script VBA étendu) lier/intégrer vos données Excel comme expliqué dans [Insérer une feuille de calcul Excel dans un document Word] (http://www.excel-easy.com /examples/embed.html) ou [Liaison de données Excel dans des documents Word] (http://www.k2e.com/tech-update/tips/158-linking-excel-data-into-word-documents)? Ce serait beaucoup plus facile que d'utiliser un script et mettrait à jour les données dans Word automatiquement. Ne réinventez pas la roue! –
La suggestion de Peh semble plutôt attrayante. Toutefois, si cela ne fonctionne pas, notez que vous ne pouvez pas coller les données d'une table Excel dans une table Word existante. Vous devez écrire le contenu de chaque cellule Excel dans chaque cellule Word existante. – Variatus
Merci pour la suggestion @Peh Mais j'écris un code avec lequel, si je tire dans un autre jeu de données de palier, il doit se mettre à jour automatiquement. Je veux dire si je mets d'autres feuilles excel avec les mêmes noms de paliers mais des valeurs différentes, il doit mettre à jour automatiquement –