2015-08-13 2 views
0

Я хочу удалить весь раздел/абзац слова doc на основе ввода пользователем.Удалить раздел на основе ввода пользователя

В документе есть разделы типа «1.1» и «1.1.1» и «1.2». Пользователь вводит «1.1.1», а макрос удалит этот раздел. Можно ли выполнить поиск макросов «1.1.1» и удалить все, начиная с 1.1.1 до, но не включая 1.2?

Я начал с этого, но вам нужно создать начальную и конечную точку для удаления.

Sub DeleteParagraphContainingString() 

Dim search As String 
search = "1.1.1" 

Dim para As Paragraph 
For Each para In ActiveDocument.Paragraphs 

    Dim txt As String 
    txt = para.Range.Text 

    If InStr(LCase(txt), search) Then 
     para.Range.Delete 
    End If 

Next 

End Sub 

ответ

0

Вы можете использовать Find функциональность Word, а затем выберите весь раздел и удалить его. Я дам вам несколько фрагментов кода, которые вы можете ткать вместе, применяются чеки, и так далее:

ActiveDocument.Range(0, 0).Select    ' go to beginning of document 

Selection.Find.ClearFormatting 
With Selection.Find 
    .text = yourFindString 
    .Replacement.text = "" 
    .Forward = True 
    .Wrap = wdFindStop 
    .Format = False 
    .MatchCase = True 
    .MatchWholeWord = True 
    .MatchWildcards = False 
    .MatchSoundsLike = False 
    .MatchAllWordForms = False 
End With 

While (Selection.Find.Execute) 
    Selection.Bookmarks("\HeadingLevel").Select   ' select whole Section 
    title = Selection.Paragraphs(1).Range.text   ' get Section Title (text of first paragraph) 
    Selection.Delete 
Wend 

Я надеюсь, что это помогает.

Смежные вопросы