“The best way to pay for a lovely moment is to enjoy it.” [Richard Bach]

Abstract

Die Excel Funktion TEXTVERKETTEN kann ab Excel Version 2019 die Inhalte von Zellbereichen und Arrays als Zeichenketten verbinden und mit vorgegebenem Trennzeichen ausgeben. Für Excel Versionen älter als Excel 2019 können Sie die hier vorgestellte benutzerdefinierte Funktion TEXTVERKETTEN verwenden.

Das Gute ist: Wenn Sie dann auf Excel 2019 oder neuer umstellen, müssen Sie nichts machen. Excel wird dann automatisch die eingebaute Funktion TEXTVERKETTEN verwenden.

Bitte beachten: Ich habe bewusst darauf verzichtet, mich um pathologische Fälle zu kümmern wie Trennzeichen ist ein Array oder Leer_ignorieren enthält ganze Zahlen wie 0 oder 1. Ich kopierte aber auch nicht die Fehler von Excel’s TEXTVERKETTEN. So behandelt Excel’s TEXTVERKETTEN Funktion Überschneidungen von nicht-zusammenhängenden Bereichen wie z. B. (A1:C3,D4:F6,G7:I9) (A1:B2,C3:D4,E5:F6,G7:H8,I9:J10) fehlerhaft. Wie bei fast jeder Analogie musste und wollte ich eine Grenze ziehen.

Appendix – Programmcode TEXTVERKETTEN

Bitte den Haftungsausschluss im Impressum beachten.

Option Explicit

Function TEXTVERKETTEN(Trennzeichen As String, _
    Leer_ignorieren As Boolean, _
    ParamArray Text() As Variant) As String
'Source (EN): http://www.sulprobil.de/textjoin_en/
'Source (DE): http://www.berndplumhoff.de/textverketten_de/
'(C) (P) by Bernd Plumhoff 07-Jan-2022 PB V1.1
Dim v, i As Long, s As String, t As String
For i = LBound(Text) To UBound(Text)
  If IsArray(Text(i)) Then
    For Each v In Text(i)
      t = IIf(IsMissing(v), "", v)
      If Not (Leer_ignorieren And t = "") Then
        TEXTVERKETTEN = TEXTVERKETTEN & s & t
        s = Trennzeichen
      End If
    Next v
  Else
    t = IIf(IsMissing(Text(i)), "", Text(i))
    If Not (Leer_ignorieren And t = "") Then
      TEXTVERKETTEN = TEXTVERKETTEN & s & t
      s = Trennzeichen
    End If
  End If
Next i
End Function