2011-11-03 9 views
5

Ho una cartella con 40-50 documenti Microsoft Word.Estrazione dati casella di testo da più file Microsoft Word

Ogni documento Word è strutturato come segue: - Non ci sono più tabelle con due colonne - La seconda colonna contiene la domanda, e alla fine di ogni domanda c'è un identificatore univoco (come ad esempio "< # Q123 # > ") - Nella stessa cella che contiene la domanda, c'è una casella di testo dopo l'identificativo univoco che contiene la risposta alla domanda

Sto provando a sviluppare una macro in Microsoft Word che aprirà ogni documento di Word nella cartella, cerca la casella di testo che si trova immediatamente dopo l'identificatore univoco specificato e incollala nel nuovo file che contiene la macro.

Se fosse possibile estrarre i dati dall'interno delle caselle di testo in un file Excel piuttosto che copiare e incollare le caselle di testo in un documento Word, sarebbe preferibile, ma non ero sicuro che fosse possibile (dal momento che alcune delle caselle di testo potrebbe contenere

risposta

3

le risposte elencate here e here in grado di mostrare come ottenere tutti i file nella cartella.

il seguente codice VBA può essere utilizzato per recuperare il testo nella seconda colonna della tabella, così come il testo nella forma (casella di testo) che si trova nella stessa cella. L'istruzione On Error Resume Next è attiva per mantenere il codice r unning se nessuna forma (casella di testo) viene trovata nella cella della tabella.

Dim cll As Cell 
Dim question As String 
Dim answer As String 
Dim tbl As Table 

'Gets the first table in the active document. 
'In your code you would assign the Word document that you have 
'just opened to a document variable. 
Set tbl = ActiveDocument.Tables(1) 

On Error Resume Next 
For i = 1 To tbl.Rows.Count 
    Set cll = tbl.Cell(i, 2) 

    question = cll.Range.Text 
    answer = cll.Range.ShapeRange.TextFrame.TextRange.Text 

    'Once you have these two strings, you can do whatever you want with them.   
Next