2017-08-29 1 views
0

Salut J'essaie de copier des cellules à partir d'une feuille Excel et de remplir un document Word. Je veux copier du texte à partir de cellules Excel vers un endroit spécifique dans un document Word. Je suis capable de stocker le texte à partir de cellules Excel dans une chaîne, mais je ne sais pas comment le stocker dans un espace réservé ou un signet que j'ai mentionné dans mon document Word. Voilà ce que j'ai jusqu'à présent:Comment ajouter du texte à l'espace réservé du mot vba

Set ws = xlBook.Worksheets("DIP Main") 
    Tmp = ws.Cells(25, "C").Value 
    .Text = Tmp 
    .Execute Replace:=("Placeholder1") 
    ' [Placeholder1] = Tmp.Text 
    ' MyDOc.Fields("Placeholder1") = Tmp.Valu 

e

Tmp stocke la valeur à partir d'Excel, mais je ne suis pas en mesure de remplacer et l'imprimer dans l'espace réservé sur mon document Word, ou en cas de l'autre manière d'imprimer la chaîne de Tmp dans un emplacement spécifique de doc de mot qui fonctionnerait aussi. De plus, je ne déclare aucun espace réservé dans mon code, je ne suis pas sûr si je suis supposé le faire. J'ai créé un espace réservé dans le document Word lui-même appelé "Placeholder1". J'utilise le mot VBA pour le coder.

Pour code complet s'il vous plaît se référer à ceci: How to copy excel range from a sheet and place it into a specific place it into a specific place in word using word vba

Répondre

0

c'est le code dans Word qui insère le texte à un signet

ActiveDocument.Bookmarks("Placeholder1").Range = "abc123" 
+0

comment le rendrais-je égal à la valeur stockée dans la chaîne? –

0

Cela devrait vous aider sur votre chemin.

Sub ExcelToWord() 

    ' define all Excel variables you are going to use: 
    Dim Wb As Workbook 
    Dim Ws As Worksheet 
    Dim Cell As Range 

    ' define all Word variables you are going to use: 
     ' since you are running the code from Excel 
     ' you must specify "Word" for each data type 
    Dim WdApp As Word.Application 
    Dim Doc As Word.Document 

    ' define variables which you can use in either application: 
     ' (if you aren't sure, define separate ones) 
    Dim Tmp As String 
    Dim R As Long 
    Dim i As Integer 

    ' replace this name with the name & path of your own Word document 
    Tmp = "E:\PVT Archive\Class 1\1-2017 (Jan 2019)\STO 170317.docm" 
    If Dir(Tmp) = "" Then       ' Check if the file exists 
     MsgBox "The file doesn't exist.", _ 
       vbInformation, "Invalid file or path name" 
     Exit Sub 
    End If 
    Set WdApp = CreateObject("Word.Application") ' open Word 
    WdApp.Visible = True 
    Set Doc = WdApp.Documents.Open(Tmp)    ' open the document 

    If Not Doc.Bookmarks.Exists("Amark") Then 
     MsgBox "The bookmark 'Amark' doesn't exist.", _ 
       vbInformation, "Can't find bookmark" 
     Exit Sub 
    End If 

    Set Wb = ActiveWorkbook 
    Set Ws = Wb.Worksheets("DIP Main") 
    Tmp = Ws.Cells(25, "C").Value 

    Doc.Bookmarks("Amark").Range.Text = Tmp 
End Sub 

Notez que le signet sera remplacé par le suivant. Il n'existe pas par la suite. Si vous souhaitez le réutiliser, vous devez utiliser le code pour le régler à nouveau.