Erstat et tegn med et andet

Under Småmakroer har jeg en funktion, der erstatter et bestemt tegn, fx x med et andet, fx y i alle markerede celler. Denne makro har tilnærmelsesvis samme formål - og så alligevel ikke. Har man fx en celle med teksten "IKKE", uden anførselstegn og en anden med "TISKE" vil en udskiftning af K med S betyde, at de to celler kommer til at indeholde ISSE og TISSE. Det er imidlertid ikke altid, at man ønsker at udskifte samtlige forekomster af et tegn i en celle. Denne makro udskifter i stedet et tegn på en bestemt position i cellen, uanset hvad tegnet er, med et andet tegn. "ALLE", kan således rettes til "ALKE" ved at udskifte tegnet på tredje position med et K.

Sub UdskiftBogstaver()

    Dim Streng As String, Pos As Integer, Kar As String, Nyval As String, fejl As Variant

    Pos = InputBox("Indtast position for det tegn (placering i cellen), der ønskes udskiftet")
    Kar = InputBox("Indtast ny karakter")

    For Each c In Selection.Cells
        Streng = c.Value
        If Pos > Len(c.Value) Then
            MsgBox "Der er intet tegn på den angivne position i celle" & c.Address, vbInformation + vbOKOnly
        Else
            Nyval = Mid(Streng, 1, Pos - 1) & Kar & Mid(Streng, Pos + 1, Len(Streng))
            c.Value = Nyval
        End If
    Next c

End Sub

Makroen viser en inputbox, hvor man skal angive på hvilken position i cellen, det tegn, som skal udskiftes, står og en ny dialogboks, hvor man skal angive, hvad det skal udskiftes med. Her kan man indtaste et eller flere tegn, som så indsættes på det erstattede tegns position. "Jacobi" kan ændres til Jacobsen, ved at udskifte tegnet på 6 position med "sen". Er der markeret flere celler, vil tegnet på den angivne position i alle celler blive udskiftet - uanset hvad tegnet er, og det, der indsættes i stedet vil være det samme i alle celler.

Hvis man prøve fx at udskifte tegnet på position 6 i en celle, og der kun er fem tegn i cellen, vises en fejlmeddelelse og der forsættes til næste markerede celle, når der klikke OK. Lader man inputbox nummer 2 være tom, når man klikker OK, vil det specificerede tegn blive erstattet med ingenting  (blive slettet).

- Tilbage til makroer -
- Tilbage til Excel -