View Single Post
 
Old 09-30-2022, 01:30 AM
Guessed's Avatar
Guessed Guessed is offline Windows 10 Office 2016
Expert
 
Join Date: Mar 2010
Location: Canberra/Melbourne Australia
Posts: 4,164
Guessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant future
Default

This is tricky because you don't want to replace every space in the code, just the ones between the double quotes. This code should get you started but it will need some checks in there to not destroy other fields.
Code:
Sub ReplaceUM()
  Dim aFld As Field, sCode As String, sFind As String, sRep As String
  Dim sInner As String, i As Integer, i1 As Integer, i2 As Integer
  Dim sPre As String, sPost As String
  sFind = "äöü "
  sRep = "aou_"
  For Each aFld In ActiveDocument.Fields
    sCode = aFld.Code.Text
    i1 = InStr(sCode, """")
    sInner = Mid(sCode, i1 + 1)
    i2 = InStr(sInner, """")
    sInner = Mid(sInner, 1, i2 - 1)
    sPre = Left(sCode, i1)
    sPost = Mid(sCode, i1 + i2)
    Debug.Print sCode, sInner, sPre, sPost
    For i = 1 To Len(sFind)
      sInner = Replace(sInner, Mid(sFind, i, 1), Mid(sRep, i, 1))
    Next i
    aFld.Code.Text = sPre & sInner & sPost
  Next aFld
End Sub
__________________
Andrew Lockton
Chrysalis Design, Melbourne Australia
Reply With Quote