1

Тема: Автоудаление столбца по маске

Суть в чем...Есть таблица на которой имеется список с номерами, между которыми в произвольном порядке раскиданы IP адреса типа 11.144.12.13. Как мне автоматически удалить строчки, в которых они встречается? Заранее благодарен.
P.S. Вот этот макрос выдает ошибку

Public Sub DeleteCells()
Dim Doc As Document
Dim Table As Table
Dim Rw As Row
Dim Cell As Cell
    Set Doc = ActiveDocument
        For Each Table In Doc.Tables
        Table.Range.Select
            Selection.Find.ClearFormatting
            Selection.Find.Replacement.ClearFormatting
                With Selection.Find
                    .Text = "[^0013]{1;}"
                    .Replacement.Text = ""
                    .Forward = True
                    .Wrap = wdFindContinue
                    .MatchWildcards = True
                End With
            Selection.Find.Execute Replace:=wdReplaceAll
            For Each Rw In Table.Rows
                    i = 0
                        For Each Cell In Rw.Cells
                            i = i + 1
                            If Cell.Range.Characters.Count = 1 And i = 6 Then
                                Rw.Delete
                            End If
                        Next Cell
                Next Rw
        Next Table
End Sub

2

Re: Автоудаление столбца по маске

В строчке .Replacement.Text = "" я ставил ".???."

3

Re: Автоудаление столбца по маске

chilli81 пишет:

Суть в чем...Есть таблица на которой имеется список с номерами, между которыми в произвольном порядке раскиданы IP адреса типа 11.144.12.13. Как мне автоматически удалить строчки, в которых они встречается?

Попробуйте такой макрос:

Sub Удаление_строк_таблицы_по_маске()
ActiveDocument.Range.Select
    Selection.Collapse
    Selection.Find.ClearFormatting
    Do
        With Selection.Find
            .Text = "[0-9]@.[0-9]@.[0-9]@.[0-9]@."  'Маска поиска для выражения вида 11.144.12.13.
            .Wrap = wdFindStop
            .MatchWildcards = True  'Поиск с использованием подстановочных знаков
            .Execute
                If .Found = True And Selection.Information(wdWithInTable) = False Then 'если результат поиска вне таблицы
                Selection.Collapse direction:=wdCollapseEnd                                 'то сбрасываем выделение в конец
                ElseIf .Found = True And Selection.Information(wdWithInTable) = True Then 'если результат поиска - в таблице
                Selection.Rows.Delete                                                              'то удаляем строку таблицы
                End If
        End With
    Loop Until Selection.Find.Found = False 'выходим из цикла, если больше ничего не найдено
End Sub