Я нашел макрос, написанный для Excel, который обладает именно той функцией, которая мне нужна, но я не знаю, как преобразовать его для использования в Word - я довольно новичок в написании сценариев и единственный язык / синтаксис, который я 'Я знаком с языком сценариев Aspect, который я изучал, работая с Procomm Plus.Я нашел макрос Excel здесь:
Найдите конкретный текст и удалите три строки над ним
Sub Delete()
Dim find As String: find = "TOT"
Dim rng As Range
Set rng = Sheets("Sheet1").Cells.find(What:=find, After:=Sheets("Sheet1").Cells(1, 1), LookIn:=xlValues, Lookat:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True)
If Not rng Is Nothing Then
rng.EntireRow.Delete
rng.Offset(-1).EntireRow.Delete
rng.Offset(-2).EntireRow.Delete
rng.Offset(-3).EntireRow.Delete
End If
End Sub
Мне нужен макрос для поиска текста "% Invalidвходной сигнал обнаружен в «маркере ^» и затем удалите его, а также две строки над этой фразой:
Router#show environment all ;(let's call this "line -2")
^ ;(and this would be "line -1")
% Invalid input detected at ‘^’ marker ;(and "line 0")
Это вывод консоли маршрутизатора Cisco (копирование / вставка в Word) ифраза "% Неправильный ввод обнаружен в маркере '^" всегда одинакова, но две строки над ней могут различаться в зависимости от того, какая команда Cisco, которую я использовал, не была распознана.
Я думаю, что решениевозможно, довольно просто, но я застрял!
Я нашел другой макрос для Word, который выполняет аналогичную функцию и - он ищет ключевую фразу и удаляет строку, содержащую эту фразу, но, опять же, я не уверен, какрасширить его, включив в него две предыдущие строки текста:
Sub InvalidInput()
Dim oRng As Word.Range
Set oRng = ActiveDocument.Range
With oRng.Find
.Text = "Invalid input detected"
While .Execute
oRng.Paragraphs(1).Range.Delete
Wend
End With
End Sub
Кто-нибудь сможет предложить какие-либо изменения, которые могут решить мою проблему?Заранее большое спасибо.