Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
14th
Май
VBA excel: найти текст в файле Word и вставить в Excel
Posted by obzor under VBA
Мне необходимо макросом в Excel скопировать текст из файла Word. Текст файла примерно такой:
Акт №123
…
Таблица 1
Таблица 2
…
Приложения:
Сертификат качества 1 — 5 листов;
Сертификат качества 2 — 3 листа;
…
Сертификат качества N — 2 листа.
Представитель …..
Текст всегда находится между словами «Приложения:» и «Представитель».
Sub Test240514mm()
Dim myWord As Object, myDoc As Object
Dim sName As String, strText1 As String, strText2 As String
'' для отладки немного изменяю имя
sName = "c:\temp\" & ThisWorkbook.Worksheets("Лист2").Range("A1") & ".docx"
On Error Resume Next
Set myWord = GetObject(, "Word.Application")
If Err.Number <> 0 Then
''
Set myWord = CreateObject("Word.Application")
Err.Clear
End If
On Error GoTo Instr
Set myDoc = myWord.Documents.Open(sName)
Dim j1, j2, stext
With myDoc.Range
strText1 = "Приложения:"
strText2 = "Представитель "
stext = .Text
'???????=??????????=???
j1 = InStr(stext, strText1)
j2 = InStr(stext, strText2)
Debug.Print Now, j1, j2, sName
If j1 > 0 And j1 < j2 Then
j1 = j1 + Len(strText1)
'MsgBox
Debug.Print Mid(stext, j1, j2 - j1 - 1)
ThisWorkbook.Worksheets("Лист2").Range("b1") = Mid(stext, j1, j2 - j1 - 1)
'ThisWorkbook.Worksheets("Лист2").Range("b1").Select
'ActiveCell.Paste
myDoc.Close False
myWord.Quit False
End If
End With
Exit Sub
Instr:
Debug.Print Err.Number, Err.Description
'MsgBox "Произошла ошибка: " & Err.Description
End Sub
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)