2017-06-28 10 views
-1

Ich versuche, ein Konfigurations-Tool, das mit mehreren Excel-Dateien verknüpft ist. Sie sind alle durch eine "Optionsnummer" verbunden. Gibt es eine Möglichkeit, einen Teil eines ganzen MS Word-Dokuments über den "Optionsnummer" -Link nach Excel zu importieren?So importieren Sie Text aus MS Word über vba-commandbutton

+0

Ja, das ist möglich. Was hast du bisher versucht und wo bist du stecken geblieben? Bitte lesen Sie [Wie zu fragen] (https://stackoverflow.com/help/how-to-ask) –

+0

@RikSportel Ich lerne durch das Tun und ich bin so weit gekommen, für Alternativen zu suchen. Ich habe einige Fragen über ähnliche Dinge auf dieser Seite gefunden, aber ich wollte auch eine Frage stellen. Ich bemerkte jetzt, dass die Texte, die ich einprägen wollte, in Tabellenform waren, also sollte es leichter sein. Trotzdem, danke für Ihre Antwort obwohl es schlecht gefragt wurde. –

Antwort

0

In Ordnung, da Ihre Frage keinen Code enthält und uns nicht viel über den Ansatz erzählt, den Sie verfolgen, werde ich nur einige allgemeine Hinweise geben, wie Sie auf Tabellen in einem Word-Dokument aus Excel zugreifen können Makro.

Zuerst müssen Sie einen Verweis auf die Microsoft Word #.# Object Library hinzufügen. Um dies zu tun, öffnen Sie Ihre VBE (alt + F11), klicken Sie auf tools, References... und markieren Sie das Kontrollkästchen für diese Bibliothek. Die #.# oben ist die Versionsnummer. Zum Beispiel wird Wort 2016 die Microsoft Word 16.0 Object Library sein.

Jetzt haben Sie Zugriff auf Word-Objekte in Ihrem Excel VBE. Sie können etwas tun wie folgt:

Sub Test() 
Dim wApp As Word.Application 
Dim wDoc As Word.Document 
Dim wTable As Word.Table 
Dim r As Word.Row 
Dim c As Word.Cell 

Set wApp = New Word.Application 'Get a word application object, so you can open and manipulate documents from your Excel macro. 
Set wDoc = wApp.Documents.Open("C:\temp\temp.docx") 'Open your document. 

Set wTable = wDoc.Tables(1) 'To access the first table in the document 

For Each r In wTable.Rows 'Loop over Word table rows 
    For Each c In r.Cells 'Loop over Word table cells 
     'Do stuff with the table: 
     MsgBox c.Range.Text 
     ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = c.Range.Text 
    Next c 
Next r 

'and clean up after yourself: 
Set wTable = Nothing 

wDoc.Close SaveChanges:=False 
wApp.Quit 

Set wDoc = Nothing 
Set wApp = Nothing 
End Sub 

Viel Glück.

+0

Können Sie diese Zeile ein wenig erläutern: Legen Sie wApp = New Word.Application 'Get ein Word-Anwendungsobjekt, so können Sie Dokumente aus Ihrem Excel-Makro öffnen und bearbeiten –

+0

'Set wApp = New Word.Application' öffnet/erstellt ein Word Beispiel. Standardmäßig ist es unsichtbar. Wenn Sie 'wApp.Visible = True 'in der nächsten Zeile hinzufügen, sehen Sie, was es getan hat. Der Teil nach dem 'ist nur ein Kommentar. Ich nehme an, dass der Code Teil eines Excel-Makros ist, deshalb brauchen Sie den Verweis auf ein 'Word.Application'-Objekt - Excel selbst liest keine Word-Dateien. –

+0

Ok, also im Grunde mache ich ein Makro, das die Tabelle von Word nach Excel kopiert und das Makro dann mit der VBA verbindet? Ist es möglich zu bestimmen, welche Tabelle über VBA kopiert werden soll oder muss ich ein Makro pro Tabelle erstellen? In der Arbeitsmappe, die ich verwende, gibt es eine aktive Tabelle mit "Optionsnummern", die sich von jedem Projekt unterscheidet. Die gleichen "Optionsnummern" sind in der Word-Datei, aus der ich kopiere. –