Het toevoegen van streepjes tussen Brieven

Scott vraagt ​​zich af hoe hij het kan maken in Excel een streepje toe te voegen automatisch tussen elke letter in een bepaalde cel. Als voorbeeld, indien cel A1 "huis", zou Scott willen converteren naar "huis".

Dit kan met een formule, maar het snel onhandig. Zo kan de volgende formule worden gebruikt om streepjes tussen de letters van wat je typt in cel A1 zet:

= KIEZEN (LEN (A1), A1, LEFT (A1,1) & "-" & RIGHT (A1,1),
LEFT (A1,1) & "-" & MID (A1,2,1) & "-" & RIGHT (A1,1),
LEFT (A1,1) & "-" & MID (A1,2,1) & "-" & MID (A1,3,1) & "-"
& RIGHT (A1,1), LEFT (A1,1) & "-" & MID (A1,2,1) & "-"
& MID (A1,3,1) & "-" & MID (A1,4,1) & "-" & RIGHT (A1,1),
LEFT (A1,1) & "-" & MID (A1,2,1) & "-" & MID (A1,3,1)
& "-" & MID (A1,4,1) & "-" & MID (A1,5,1) & "-" & RIGHT (A1,1))

Dit specifieke voorbeeld van een formule werkt alleen op tekst tot en met zes tekens lang zijn. Het zou dus goed voor "huis", maar niet voor "huishoudelijke". De formule kan worden verlengd, maar nogmaals, zou deze erg lang worden.

Een beter om een ​​macro te gebruiken voor de conversie. Als u wilt dat de streepjes rechts in de cel in te voegen, kun je een macro gebruiken, zoals deze:

Sub AddDashes1 ()
Dim Cel als Waaier
Dim Stemp als Koord
Dim C As Integer

Voor elke cel in Selection
Stemp = ""
Voor C = 1 To Len (Cell)
Stemp = Stemp + Mid (Cell, C, 1) + "-"
Volgende
Cell.Value = Links (Stemp, Len (Stemp) - 1)
Volgende
End Sub

Deze macro is ontworpen voor gebruik op een geselecteerde reeks cellen. Selecteert u de cellen die u wilt converteren, en vervolgens de macro. De streepjes worden ingevoegd na elke letter in de cellen.

Als u liever de oorspronkelijke cel waarden niet te wijzigen, kunt u een door de gebruiker gedefinieerde functie die het werk zou doen maken:

Functie AddDashes2 (Src As String) As String
Dim Stemp als Koord
Dim C As Integer

Application.Volatile
Stemp = ""
Voor C = 1 To Len (SRC)
Stemp = Stemp + Mid (Src, C, 1) + "-"
Volgende
AddDashes2 = Links (Stemp, Len (Stemp) - 1)
End Function

Om deze functie te gebruiken zou je de volgende in het werkblad:

= AddDashes2 (A1)

Als u ervoor wilt zorgen dat de functie is een beetje robuuster, kon je het zo aan te passen dat het omgaat met meerdere woorden. In zo'n geval zou je niet willen dat het om een ​​ruimte te behandelen als een "dashable brief." Bijvoorbeeld, zou je willen de routine te streepjes toe te voegen aan "een twee" dus het kwam als "een twee" in plaats van "one-twee". De volgende variant op de functie zal het lukken:

Functie AddDashes3 (Src As String) As String
Dim Stemp als Koord
Dim C As Integer

Application.Volatile
Stemp = ""
Voor C = 1 To Len (SRC)
Stemp = Stemp + Mid (Src, C, 1)
Als Mid (Src, C, 1) <> "" En
Mid (Src, C + 1, 1) <> "" En
C <Len (SRC) Dan
Stemp = Stemp + "-"
End If
Volgende
AddDashes3 = Stemp
End Function

ExcelTips is uw bron voor kosteneffectieve Microsoft Excel training. Deze tip (9633) is van toepassing op Microsoft Excel 97, 2000, 2002 en 2003. U kunt een versie van deze tip voor de ribbon-interface van Excel (Excel 2007 en later) vindt u hier: Streepjes toevoegen tussen Letters.