1

Тема: Автоматическое удаление ненужных строк

Помогите разобраться.
мне нужно чтобы каким-либо образом (макросом или еще как) автоматически удалялись строки с людьми, у которых нет количества часов (в данном случае начиная с Петровского).
пример прилагаю.

Post's attachments

список по часам.doc 26.5 Кб, 11 скачиваний с 2013-12-20 

You don't have the permssions to download the attachments of this post.

2

Re: Автоматическое удаление ненужных строк

Вот макрос который удаляет строки по Вашим параметрам:

Public Sub Удаление_строк()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    Do
        With Selection.Find
            .Text = "( за)([^0032]{1;})(час)(?{1;})([^0013])"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .MatchWildcards = True
            .Execute
                If .Found = True Then
                    Selection.Paragraphs(1).Range.Delete
                Else
                    Exit Do
                End If
        End With
    Loop
End Sub

Отредактировано aap77 (22.12.2013 09:35:17)

3

Re: Автоматическое удаление ненужных строк

Sub GetOutParagraphsWithUserDefindContent_131222_1411()
Const UDC = "за  часов" 'текст, наличие которого грохает абзац
Dim i As Long     'счётчик абзацев

With ActiveDocument 'работаем в активном документе Word
    i = .Paragraphs.Count
    '''''''''''''''''''''''''''''''''''''''''это незаконно''''''''
    '.Range.Find.Execute Chr(11), replacewith:=Chr(13), Replace:=wdReplaceAll
    'заменили разрывы строк (код 11) символами абзацев (код 13)
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Переберём все абзацы и удалим те, в которых есть данный текст
    Do While i > 0
        If LCase(.Paragraphs(i).Range.Text) Like "*" & LCase(UDC) & "*" Then
             Debug.Print i, .Paragraphs(i).Range.Text
             .Paragraphs(i).Range.Delete 'удалили весь абзац, где был текст константы UDC
             'ненужный абзац удалён
        End If
        i = i - 1
    Loop

End With


End Sub

4

Re: Автоматическое удаление ненужных строк

Спасибо большое, получилось.