Ombyt "nummer" og tekst

En række celler indeholder en tekst, strukureret på denne måde:

HN1234 - Forklarende tekst
P1222 - Forklarende tekst

Fælles for cellerne er, at indholdet starter med et nummer, der efterfølges af en tekst. Nummeret kan variere i udseende, men mellem nummer og forklaring er altid et mellemrum, en bindestreg og et mellemrum. Dette skal ombyttes til

 Forklarende tekst - HN1234
 Forklarende tekst - P1222

Følgende makro håndterer opgaven. Den kræver at de celler, der skal ændres markeres på forhånd. Makroen har en simpel fejlhåndtering, der sikrer, at såfrem en celle ikke indeholder en bindestreg, vil den pågældende celle blive sprunget over, hvorefter det fortsættes med de følgende celler.

Sub OmbytFlere()
    Dim a As String, B As String, d As String
    On Error GoTo err
    For Each c In Selection.Cells
        If Isempty(c) Then Goto cont
        a = Mid(c.Value, 1, InStr(1, c.Value, "-") - 2)
        b = Mid(c.Value, InStr(1, c, "-") + 2, Len(c.Value))
        d = b & " - " & a
        c.Value = d
cont:
    Next
    Exit Sub
err:
    If err.Number = 5 Then
        GoTo cont
    Else
        MsgBox err.Number & " " & err.Description
    End If
End Sub

 

- Tilbage til makroer -
- Tilbage til Excel -