2009-07-09 3 views
2

Ich brauche einen Vb-Code in MS Word 2003, die eine bestimmte Zelle in Excel-Datei kopieren und in Word (Feld) einfügen. Unten ist was ich getan habe und es führt zu einem Fehler.Wie kopiere ich Wert aus einer Zelle in MSExcel in ein Feld in MSWord-Datei mit VB-Code?

Sub cmdGetNumber() 
Dim XL As Object 
Dim WBEx As Object 
Dim ExelWS As Object 
Dim appwd As Object 
Dim wdApp As Word.Application 

'''' 

'On Error GoTo OLE_ERROR 
Set XL = CreateObject("Excel.Application") 
Set wdApp = CreateObject("Word.Application") 

'Open Excel document 
Set WBEx = XL.Workbooks.Open("C:\Documents and Settings\121567\Desktop\tafket1.xls") 
Set ExelWS = WBEx.Worksheets("Sheet1") 
XL.Visible = True 
'appwd.Visible = True 

ExelWS.Range("c2").Select 
'Selection.Copy 

'wdApp.Selection.PasteSpecial Placement:=wdInLine, DataType:=wdPasteMetafilePicture 
'wdApp.Documents.Save 
Set wdApp = Nothing 
Set ExelWS = Nothing 
Set WBEx = Nothing 

End Sub 
+0

Vielleicht versuchen wdPasteText oder wdPasteRTF anstelle von wdPasteMetafilePicture? – barrowc

+0

Bitte fügen Sie den Fehlertext am Ende Ihrer Frage ein. – RBarryYoung

Antwort

2

Da dieses Makro in Word ist, müssen Sie eine Wortinstanz nicht explizit öffnen. Sie können einfach Documents.Add hinzufügen, um ein neues Dokument hinzuzufügen, oder Documents.Open, um ein vorhandenes Dokument zu öffnen.

Try this:

Sub cmdGetNumber() 
    Dim XL As Object 
    Dim WBEx As Object 
    Dim ExelWS As Object 
    Dim wdDoc As Word.Document 

    'On Error GoTo OLE_ERROR 
    Set XL = CreateObject("Excel.Application") 

    'Open Excel document 
    Set WBEx = XL.Workbooks.Open("C:\Documents and Settings\121567\Desktop\tafket1.xls") 
    Set ExelWS = WBEx.Worksheets("Sheet1") 
    'XL.Visible = True 
    ExelWS.Range("C2").Copy 

    Set wdDoc = Documents.Add 
    wdDoc.Activate 
    wdDoc.Select 
    Selection.Paste 

    WBEx.Close 
    XL.Quit 
    Set WBEx = Nothing 
    Set ExelWS = Nothing 
    Set XL = Nothing 
End Sub 

Der obige Code wird Ihre Excel-Datei öffnen, kopieren Sie die Zelle C2, dann ein neues Word-Dokument öffnen, und dort einfügen.

Ich sehe, Sie haben eine (filed) in Ihrer Frage erwähnt. Meinst du eine Field oder eine File? Wenn es ein Field ist, dann möchten Sie vielleicht ersetzen Selection.Paste mit dem entsprechenden Feldnamen

+0

+ 1 Schön gemacht :) –

Verwandte Themen