Inhalt von Zellen in Word einfügen

  • Word

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von dstar9091.

    Inhalt von Zellen in Word einfügen

    Hallo,
    ich möchte in einer Word Datei mit Daten füllen, welche ich aus einer externen Excel Tabelle bekomme.

    Leider bricht er mir bei der For-Schleife mit einen Fehler ab.

    Kann mir jemand helfen?

    Warum?

    Visual Basic-Quellcode

    1. Set Mappe = CreateObject("Excel.Application")
    2. '
    3. ' Excel-Mappe mit Daten öffnen
    4. Mappe.Workbooks.Open "D:\Users\user\Documents\Vorbereitung\Test\Namen.xlsx"
    5. '
    6. ' Blatt und Daten mit Range auswählen
    7. For x = 2 To Mappe.Sheets("Namen").Range("A65536").End(xlUp).Row
    8. If Mappe.Sheets("Namen").Cells(x, 6).Value <> "" Then
    9. '
    10. ' Zelle für Namen auswählen
    11. Mappe.Sheets("Namen").Cells(x, 1).Select
    12. ' Zelle kopieren
    13. Mappe.Selection.Copy
    14. ' Platzhalter suchen
    15. With Selection.Find
    16. .Execute FindText:="[Name]"
    17. End With
    18. ' Daten an Cursor-Position im Word-Dokument einfügen
    19. Selection.PasteSpecial DataType:=wdPasteText
    20. End If
    21. Next
    Ganz gefährlich mit dem Sheet-Objekt der Application zu arbeiten.
    Besser:

    Visual Basic-Quellcode

    1. ​Set Excel = CreateObject("Excel.Application")
    2. Set Mappe = Excel.Workbooks.Open("D:\Users\user\Documents\Vorbereitung\Test\Namen.xlsx")
    3. Set Sheet = Mappe.Sheets("Namen")
    4. For x = 2 To Sheet.Cells(Sheet.Rows.Count,1).End(xlUp).Row
    5. If Sheet.Cells(x, 6).Value <> "" Then
    6. Sheet.Cells(x, 1).Copy
    7. Selection.Find.Execute FindText:="[Name]"
    8. Selection.PasteSpecial DataType:=wdPasteText
    9. End If
    10. Next
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    danke für die schnelle Antwort es klappt nun soweit.

    ich stehe aber nun vor einen anderen Problem.

    Das Skript soll ja eine Word Datei mit Datensätzen aus einer Excel-Datei füttern.Dabei werden die Daten immer an eine Fixe Position eingesetzt.
    Das hatte ich ja bisher mit Platzhaltern gemacht z.B. [Name]
    Leider klappt das ja nun nur beim 1. Durchgang da dann der Platzhalter ersetzt wurde.

    Gibt es da vielleicht eine Elegantere Möglichkeit?

    Vielen Dank