Withaar
Verenigingslid
- Lid geworden
- 8 apr 2001
- Berichten
- 3.551
Ik heb een VBA macro die in een Word document op zoek gaat naar een bepaalde string.
Zeg *@* als deze gevonden wordt moet de tekst geselecteerd worden en dan vervangen worden door een ander tekst.
Dit gaat allemaal prima.
Probleem is dat al de string (*@*) niet gevonden wordt, cq niet voorkomt in de tekst, de cursor boven aan te bladzijde blijft staan en de tekst daar ingevoegd wordt, dat is niet de bedoeling.
Niet gevonden zou moeten moeten resulteren in een sprong naar de volgende zoek opdracht. Dus verder bij ' Ondertekenings blok herkenbaar aan *@@*
Iets als, If Find = True then...
Code die ik nu gebruik;
Zeg *@* als deze gevonden wordt moet de tekst geselecteerd worden en dan vervangen worden door een ander tekst.
Dit gaat allemaal prima.
Probleem is dat al de string (*@*) niet gevonden wordt, cq niet voorkomt in de tekst, de cursor boven aan te bladzijde blijft staan en de tekst daar ingevoegd wordt, dat is niet de bedoeling.
Niet gevonden zou moeten moeten resulteren in een sprong naar de volgende zoek opdracht. Dus verder bij ' Ondertekenings blok herkenbaar aan *@@*
Iets als, If Find = True then...
Code die ik nu gebruik;
Code:
Sub TB()
Dim d As Single
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "*@*"
.Replacement.Text = ""
End With
Selection.Find.Execute
Dim myrange As Range
Set myrange = ActiveDocument.Range
Dim ref As Single
Dim reftxt As String
'lees de veldname
For ref = 1 To ActiveDocument.Fields.Count
If Mid(ActiveDocument.Fields(ref).Code.Text, 14, 14) = "Cursustypecode" Then
reftxt = ActiveDocument.Fields(ref).Result.Text
Selection.InsertFile FileName:="V:\sjablonen\Tekstblokken\" & reftxt & ".doc"
d = 1
End If
Next
If d <> 1 Then
For ref = 1 To ActiveDocument.Fields.Count
If Mid(ActiveDocument.Fields(ref).Code.Text, 14, 15) = "cursus_codering" Then
reftxt = ActiveDocument.Fields(ref).Result.Text
Selection.InsertFile FileName:="V:\sjablonen\Tekstblokken\" & reftxt & ".doc"
End If
Next
End If
'
' Ondertekenings blok herkenbaar aan *@@*
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "*@@*"
.Replacement.Text = ""
End With
Selection.Find.Execute
'lees de veldname
For ref = 1 To ActiveDocument.Fields.Count
If Mid(ActiveDocument.Fields(ref).Code.Text, 14, 7) = "user_id" Then
reftxt = ActiveDocument.Fields(ref).Result.Text
Selection.InsertFile FileName:="V:\sjablonen\Tekstblokken\" & reftxt & ".doc"
End If
Next
End Sub
Laatst bewerkt: