Selezione del testo di Word in A per loop
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
. 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
.