Eine schnelle VBA Routine, die ahmt wäre TextJoin in Excel 2016 und Ihren Bedürfnissen entspricht:
Function textjoin(delimiter As String, ignoreEmpty As Boolean, startcell As Range, endcell As Range) As String
Dim rngCell As Range
For Each rngCell In Range(startcell, endcell).Cells
If (ignoreEmpty And rngCell.Value <> "") Or Not ignoreEmpty Then
If textjoin = "" Then textjoin = rngCell.Value Else textjoin = textjoin & delimiter & rngCell.Value
End If
Next rngCell
End Function
Der Unterschied zwischen diesem und der eingebauten Excel 2016 textjoin()
Formel ist, dass die letzten beiden Parameter sind der Anfang und das Ende des Bereichs (anstelle von nur einem Bereich wie textjoin will).
Um dies zu verwenden, gehen Sie zu Ihrem VBE (Alt + F11). Erstellen Sie ein neues Modul im VBAProject Ihrer Arbeitsmappe. Dann fügen Sie das ein.
Ich glaube, dass es eine neue Funktion in Excel 2016 gibt, die solche Dinge tun kann. @Jeeped hat es mir einmal gesagt. Aber ich konnte es nicht finden/es zur Arbeit bringen. Vielleicht hat er/sie eine Lösung für dein Problem. – Ralph
@Ralph, glaube ich [textjoin()] (https://support.office.com/en-us/article/TEXTJOIN-function-357b449-ec91-49d0-80c3-0e8fc845691c) ist, wovon Sie sprechen. OP, wenn Sie Excel 2016 nicht haben, benötigen Sie eine VBA-Funktion/UDF, um dies zu entfernen. – JNevill
Irgendwelche Vorschläge zum VBA-Code? – Adavid02