Ich benutze Office 2010. Mein Problem ist, ich habe eine gut gefüllte Excel Tabelle und möchte aus dieser aus jeder Spalte ein Feld A in einem Word Dokument Exportieren. Im zweiten Schritt soll das Feld B (der gleichen Zeile) als Dateiname gespeichert werden. Und das Spalte für Spalte und das am besten automatisch.
Ist sowas möglich? Wenn ja wie? Ich bedanke mich schon mal vorab. Gruß Sven
das könnte mit diesem Makro funktionieren. Als Speicherverzeichnis habe ich F:\Test programmiert, muss ggf. geändert werden.
Code:
Sub Excel2Word() 'getestet unter 2016 'Variablendeklaration 'Objekte Dim appWord As Object Dim objFile As Object 'Array Dim arrDaten 'Word-Application erzeugen Set appWord = CreateObject("Word.Application") 'Daten von A2 bis Bxxx in Array uebernehmen arrDaten = ActiveSheet.Range(Cells(2, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 2)).Value 'Schleife ueber alle Inhalte des Array For icnt = 1 To UBound(arrDaten, 1) 'Datei erzeugen Set objFile = appWord.Documents.Add 'Datei aktivieren - kann eventuell entfallen objFile.Activate 'Text zuweisen appWord.Selection.Text = arrDaten(icnt, 2) 'speichern unter ... objFile.SaveAs2 Filename:="F:\Test\" & arrDaten(icnt, 1), FileFormat:= _ wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _ :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _ :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ SaveAsAOCELetter:=False, CompatibilityMode:=15 'Datei schließen und zuruecksetzen Set objFile = Nothing 'Ende Schleife ueber alle Inhalte des Array Next 'Word-Objekt zuruecksetzen Set appWord = Nothing End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
25.09.2016, 13:07 (Dieser Beitrag wurde zuletzt bearbeitet: 25.09.2016, 13:08 von snb.)
Mit etwas weniger Code geht's auch:
Code:
Sub M_snb() sn = Sheet1.Cells(1).CurrentRegion
With CreateObject("Word.application") For j = 2 To UBound(sn) With .documents.Add .Content = sn(j, 2) .Windows(1).Visible = True .SaveAs "G:\OF\" & sn(j, 1) .Close 0 End With Next End With End Sub