2017-11-08 1 views
0

Dies ist mein dritter Tag der Verwendung von VBA. Ich arbeite derzeit einen 3-Monats-Vertrag für diese Firma und habe herausgefunden, wie man automatisch Daten von Excel zu einem neuen Word-Dokument überträgt (ein Prozess, den sie seit Jahren wollen). Ich habe auch herausgefunden, wie man ein vorhandenes Word-Dokument von Excel öffnet.Verschieben von Excel-Daten in ein bereits vorhandenes Word-Dokument

Die Sache ist, ich habe nicht ausgearbeitet, wie man Daten von Excel zu einem vorhandenen Wortdokument überträgt.

Unten ist der Code, den ich aus dem oben genannten Grund schreibe. Kann jemand darauf hinweisen, wo ich falsch liege? Irgendwelche und alle Antworten würden sehr geschätzt :)

Sub CopyRangeToWord() 
Dim objWord As Word.Application 
Dim objDoc As Word.Document 
Set wordApp = GetObject("C:\Users\CoffeeFuelsMeNow\Documents\Ladedadeda\Testplate.dotx") 

Set objDoc = objWord.Documents 
objWord.Visible = True 
Range("A1:B10").Copy 
With objDoc.Paragraphs(objDoc.Paragraphs.Count).Range 
     'All formatting goes here 
    .Paste 
    .Font.Name = "broadway" 
    .Font.Color = wdColorBlue 
    .Font.Bold = True 
    .Font.Italic = True 
    .Font.Allcaps = True 
    .Font.Size = 20 
End With 
End Sub 
+1

Können Sie bitte sagen, was Sie erreichen möchten? Halten Sie die Frage direkt auf den Punkt – eithed

+0

@eithed Sorry, das war der Kaffee – CoffeeFuelsMeNow

Antwort

1

Das funktioniert völlig in Ordnung für mich: Es fügt die Zeilen in das Dokument immer und immer wieder als Tabelle, wenn ich den Code ausführen

Dim objWord 
Dim objDoc 
Set objWord = CreateObject("Word.Application") 
Set objDoc =objWord.Documents.Open("C:\Users\schmidmath\Documents\test1.docx") 

Range("A1:B10").Copy 

With objDoc.Paragraphs(objDoc.Paragraphs.Count).Range 
    'All formatting goes here 
    .Paste 
    .Font.Name = "broadway" 
    .Font.Color = wdColorBlue 
    .Font.Bold = True 
    .Font.Italic = True 
    .Font.Allcaps = True 
    .Font.Size = 20  
End With 
objWord.Visible = True 
+0

Ich habe gerade versucht, diesen Code zu verwenden und Excel verbrachte ein bisschen zu lange darüber nachzudenken. Benutze ich noch Sub CopyRangeToWord() oder brauche ich einen anderen? – CoffeeFuelsMeNow

+0

Warte, vergiss es. Mein Wort spielt sich auf. Das hat geholfen – CoffeeFuelsMeNow

0

Unten modifizierter Code funktioniert an meinem Ende, teste es und lass es mich wissen, wenn es deine Anforderung erfüllt.

Sub CopyRangeToWord() 
Dim objWord 
Dim objDoc 

Set objWord = CreateObject("Word.Application") 
Set objDoc = objWord.Documents.Add 
Set wordApp = GetObject("C:\Users\CoffeeFuelsMeNow\Documents\Ladedadeda\Testplate.dotx") 
Set obj­Doc = objWord.Documents 

objWord.Visible = True 
Range("A1:B10").Copy 
With objDoc.Paragraphs(objDoc.Paragraphs.Count).Range 
     'All formatting goes here 
    .Paste 
    .Font.Name = "broadway" 
    .Font.Color = wdColorBlue 
    .Font.Bold = True 
    .Font.Italic = True 
    .Font.Allcaps = True 
    .Font.Size = 10 
End With 
End Sub 
+0

So funktioniert es, aber es öffnet ein neues Word-Dokument. Ich brauche es, um ein bereits erstelltes Word-Dokument zu öffnen. Ich schätze Ihre Hilfe. – CoffeeFuelsMeNow

Verwandte Themen