Domanda

Ho creato questo codice per cercare attraverso il mio documento di Word e trova la parola Appendice3 e, se trovata, eliminarla e lo spazio prima (sezione interruzione in questo caso).Quindi sottrae il numero 3 per 1 e torna all'inizio del ciclo per loop e cerca l'appendice2 ed elimina le cose che volevo.Loop attraverso 3 volte, terminando ad Appendice1.L'unico problema è che elimina solo le cose dell'appendice3.Se ritornando la macro eliminerà l'Appendice2 e solo appendice2.Su così via.Si sta incrementando ma la selezione non sembra essere cancellata.Eventuali suggerimenti su come posso modificare il mio codice da loop attraverso e selezionare un testo diverso ogni volta?

Sub RemoveAppendices()
Dim i As Integer
Application.ScreenUpdating = False
Selection.HomeKey Unit:=wdStory
'Cntr = 3
'For i = 1 To 3
For i=3 to 1 step -1
    With Selection.Find
        .ClearFormatting
        .Text = "APPENDIX" & Cntr
        If Selection.Find.Execute Then
            Selection.Select
            Selection.Delete
            With Selection
                .EndKey Unit:=wdStory
                .TypeBackspace
                .Delete
            End With
        End If
    End With
    'Cntr = Cntr - 1

Next i
End Sub
.

È stato utile?

Soluzione

ha capito.Avevo bisogno di andare all'inizio della pagina all'interno del ciclo invece di prima del loop, o dovevo avvolgere la ricerca del testo durante la ricerca.Lo script aggiornato è simile a questo:

Sub RemoveAppendices()
Dim i As Integer
For i = 3 To 1 Step -1
    'Selection.HomeKey Unit:=wdStory 'this would also work but I like wrap better
    With Selection.Find
        .Wrap = wdFindContinue
        .Text = "APPENDIX" & i
        .MatchWholeWord = True
        .MatchCase = True
        If Selection.Find.Execute Then
            Selection.Select
            Selection.Delete
            With Selection
                .EndKey Unit:=wdStory
                .TypeBackspace
                .Delete
            End With
        End If
    End With
Next i
End Sub
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top