Извлечь инфу с данных - VBA
Формулировка задачи:
здравствуйте, работаю в Ворде, есть в переменной а данные, например:
;агент;агента;агенту;агентом;агенте;агенты;агентов;агентам;агентами;агентах;
;агрессивный;агрессивного;агрессивному;агрессивным;агрессивном;агрессивные;
всего около 2000 строк, в каждой строке 10-20 слов, строки разделены абзацем, слова - ;
есть в переменной b данные, например:
я увидел агента, он был агрессивным - всего 50 - 100 слов
с переменной b данные циклом по каждому слову сравниванию, есть ли оно в переменной а - одна строка кода
вопрос в том, если есть это слово то как узнать в какой оно строке и какое самое первое слово в этой строке? спс
Решение задачи: «Извлечь инфу с данных»
textual
Листинг программы
Option Explicit ' Sub Obrabotka() ' Dim a As String Dim b As String Dim aa() As String Dim aax() As String Dim bb() As String Dim i As Long Dim i2 As Long Dim Старт_программы As Date 'присвоение переменной даты начала программы Старт_программы = Time a = ActiveDocument.Bookmarks("all_word").Range aa = Split(a, Chr$(13)) b = "я увидел агента, он был агрессивным" b = Replace$(b, ",", "") bb = Split(b, " ") For i = 0 To UBound(bb) 'Debug.Print bb(i) If InStr(a, ";" & bb(i) & ";") <> 0 Then 'MsgBox$ bb(i) & " - имеется в списке" For i2 = 0 To UBound(aa) 'Debug.Print aa(i2) aax = Split(aa(i2), ";") 'Debug.Print aax(1) If InStr(aa(i2), ";" & bb(i) & ";") <> 0 Then MsgBox$ "Время обработки текста: " & DateDiff("n", Старт_программы, Time) & " мин." & vbCrLf & _ bb(i) & " - имеется в строке: " & i2 + 1 & " (" & aax(1) & ")" Exit For End If Next End If Next MsgBox$ "Обработка закончена, время обработки текста: " & DateDiff("n", Старт_программы, Time) & " мин." End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д