Получить значения из документа word по маске макросом в excel - VBA
Формулировка задачи:
Здравствуйте!
Подскажите, пожалуйста, можно ли макросом произвести поиск по маске в документах Word и вывести все значения в таблицу Excel? И как это сделать?
Ситуация:
есть около 300 документов word нужно достать значения, находящиеся в фигурных скобках Пример {Part1.1.8 REQ 2.8.1.f1.3.2-000-X, 2.8.1.1.2.7-000-Z}
Т.е. маска поиска в word подстановочными знаками [{]?*[}]
В экселе нужно получить:
имя файла | Part1.1.8 REQ 2.8.1.f1.3.2-000-X, 2.8.1.1.2.7-000-Z (все значения в скобках по документу через запятую и пробел)
Уважаемый
toiai
в теме Получить определенные значения из документа word макросом помогал участнику форума с аналогичной задачей, однако, у меня не получается адаптировать этот макрос под мою задачу.Решение задачи: «Получить значения из документа word по маске макросом в excel»
textual
Листинг программы
- Sub InfaScobok()
- Dim b(), i&, j&, txt$, n&, k&, rw&, NameFile$, col&
- Workbooks.Add
- Set ShExcel = ActiveSheet
- Cells(1, 1) = "Имя файла"
- FileDocs = Application.GetOpenFilename(filefilter:="Documents(*.doc;*.docx),*.doc;*.docx", _
- Title:="Выберите файлы с данными", MultiSelect:=True)
- If Not IsArray(FileDocs) Then Exit Sub
- Application.ScreenUpdating = False
- Set objWord = CreateObject("Word.Application")
- 'objWord.Visible = True
- For k = 1 To UBound(FileDocs)
- With objWord.Documents.Open(FileDocs(k))
- txt = .Range.Text
- s = Split(txt, "{")
- NameFile = .Name
- .Close
- If UBound(s) = 0 Then GoTo Sled
- ReDim b(1 To UBound(s), 1 To 1)
- End With
- For n = 1 To UBound(s)
- txt = Split(s(n), "}")(0)
- col = Len(txt) \ 256 + 1
- If col > UBound(b, 2) Then ReDim Preserve b(1 To UBound(b, 1), 1 To col)
- For i = 1 To col
- b(n, i) = Mid(txt, (i - 1) * 256 + 1, 256)
- Next
- Next
- With ShExcel
- rw = .UsedRange.Rows.Count + 1
- .Cells(rw, 1).Resize(UBound(b), 1) = NameFile
- .Cells(rw, 2).Resize(UBound(b), UBound(b, 2)) = b
- End With
- Sled:
- Next
- Application.ScreenUpdating = True
- objWord.Quit
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д