Извлечение данных текстового поля из нескольких файлов Microsoft Word - PullRequest
5 голосов
/ 03 ноября 2011

У меня есть папка с 40-50 документами Microsoft Word.

Каждый документ Word структурирован следующим образом: - Есть несколько таблиц с двумя столбцами - Второй столбец содержит вопрос, и в конце каждого вопроса есть уникальный идентификатор (например, "<# Q123 #> ") - В той же ячейке, где находится вопрос, после уникального идентификатора есть текстовое поле, содержащее ответ на вопрос

Я пытаюсь разработать в Microsoft Word макрос, который будет открывать каждое слово.документ в папке, найдите текстовое поле, которое находится сразу после указанного уникального идентификатора, и вставьте его в новый файл, содержащий макрос.

Если бы можно было извлечь данные из текстовых полей в файл Excel, а не копировать и вставлять текстовые поля в документ Word, это было бы предпочтительнее, но я не был уверен, что это так.возможно (поскольку некоторые текстовые поля могут содержать

1 Ответ

3 голосов
/ 03 ноября 2011

Ответы, перечисленные здесь и здесь , могут показать вам, как получить все файлы в вашей папке.

Следующий код VBA можно использовать для получениятекст во втором столбце таблицы, а также текст в форме (текстовое поле), находящийся в той же ячейке.Оператор On Error Resume Next используется для поддержания работоспособности кода, если в ячейке таблицы не найдена фигура (текстовое поле).

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
...