Обработка части текста из ячейки ворда - VBA
Формулировка задачи:
Пытаюсь скопировать часть текста из ячейки ворда.
все содержимое копируется.
не получается скопировать часть текста. "1. Руководитель Департамента АА - Иванов 2. Руководитель Управления ВВ - Петров". Нужно в ячейку поставить "Департамента АА", в лучшем случае на следующую строку еще "Управления ВВ".
дает ошибку в строке "With rt.Find '"
Листинг программы
- rt = wdTbl.Cell(3, 2).Range '.Text
- If Left(rt, 2) = "1." Then
- 'If Left(wdTbl.Cell(3, 2).Range.Text, 2) = "1." Then
- Sheets(3).Cells(l, 4).Value = Replace(Replace(wdTbl.Cell(3, 2).Range.Text, Chr(7), ""), Chr(13), "")
- Sheets(3).Cells(l, 5).Value = Replace(Replace(wdTbl.Cell(4, 2).Range.Text, Chr(7), ""), Chr(13), "")
- Else
- With rt.Find 'выборка
- .ClearFormatting
- .Text = " - "
- .Forward = True
- ' .Wrap = wdFindStop
- .Format = False
- .MatchCase = False
- .MatchWholeWord = False
- .MatchAllWordForms = False
- .MatchSoundsLike = False
- .MatchWildcards = True
- If .Execute Then
- Sheets(3).Cells(l, 4).Value = odoc.Range(rt.Start, rt.End - 3)
- End If
- End With
в данном фрагменте для проверки делаю выборку по строке "Руководитель Департамента СС - Сидоров"
как я понимаю не правильно задается диапазон обработки потому что
"Sheets(3).Cells(l, 4).Value = Replace(Replace(rt.Text, Chr(7), ""), Chr(13), "")" не работает.
как правильно задать .Range для текста в ячейке?
Решение задачи: «Обработка части текста из ячейки ворда»
textual
Листинг программы
- rt = wdTbl.Cell(3, 2).Range.Text
- n = InStr(1, rt, "2.") ' начальная позиция "2."
- k = InStr(n, rt, " - ") ' позиция первого " - " после "2."
- s = Mid(rt, n + 3, k - n + 2) ' часть текста от "2." до " - "
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д