Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1800to1804
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textverketten in VBA

Textverketten in VBA
04.01.2021 21:30:32
kai_os
Hallo zusammen,
ich benötige die Funktion TEXTVERKETTEN als VBA, da unser Unternehmen nicht eine fortschrittliche Raketensoftware wie Office 365 besitzt (die Funktion ist nur mit einem 365 Abo verfügbar).
Bereich:
Zelle A1 - An (Input immer unterschiedlich)
Merkel
Scholz
Altmaier
Wunschoutput in Zelle C1 als zusammenhängender Text getrennt durch " | ":
Merkel | Scholz | Altmaier
Vielen Dank für die Hilfe!
Gruß
Kai

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Es geht noch besser
05.01.2021 16:51:05
Sulprobil
Hallo,
Danke, Lupo!
Es geht aber noch besser, denke ich, wenn man z. B. folgende Funktion definiert:

Function TEXTVERKETTEN(Trennzeichen As String, _
Leer_ignorieren As Boolean, _
Text1 As Variant) As String
'Reverse ("moc.LiborPlus.www") PB V1.1 05-Jan-2021
Dim v, s As String
For Each v In Text1
If Not (Leer_ignorieren And v = "") Then
TEXTVERKETTEN = TEXTVERKETTEN & s & v
s = Trennzeichen
End If
Next v
End Function
Sie entspricht mit Ausnahme mehrerer möglicher Textparameter (man kann hier nur ein Array oder einen Bereich angeben) am Ende des Aufrufs der TEXTVERKETTEN Funktion ab Excel 2019.
Sobald man Excel 2019 oder neuer einsetzt, würde auch die interne Funktion genommen werden, und man könnte dieses Makro löschen.
Von der Nutzung Luc:?'s VJOIN Funktion möchte ich mal fröhlich abraten. Sie hat andere Parameter, und wir wollen doch - mit Ausnahme von Luc:? versteht sich, aber er scheint ja genug Zeit zu haben - die Funktionsaufrufe nicht zweimal anfassen.
Viel Spaß,
Bernd
Anzeige
Es gibt im Archiv etliche UDFs, die dieses alte …
05.01.2021 19:06:04
Luc:?
…Problem bzw alten NutzerWunsch zu lösen versprechen, Bernd,
aber keine davon ist so umfassend wie VJoin, das außerdem die richtige engl Bezeichnung verwendet, weil es primär auf der vbFkt Join basiert, was bekanntlich, wie alle diese UDFs, vor der neuen Xl-Fkt da war. Die Übersetzer haben dann aus dem Xl-Original TextJoin TEXTVERKETTEN gemacht, was ebenfalls wieder das alte Concatenate mit Join gleichsetzt, obwohl hierbei anders vorgegangen wird und es im Deutschen auch andere Worte dafür gibt, zB VERBINDEN, was auch gelegentlich für derartige UDFs und Operationen genutzt wurde.
Ansonsten schlägst du aus praktischen Gründen etwas vor, was nicht mal µS macht, obwohl es meist problemlos wäre, wenn es nicht etwas mit dem neuen Fktskern von Xl ab Vs12/2007 zu tun hätte. Ob dann der Übergang so problemlos wäre, wie du es dir vorstellst, ist fraglich, aber möglich. Außerdem entspricht auch deine neue Variante nicht ganz der Syntax von TEXTVERKETTEN, denn das hat nicht ohne Grund eine andere ArgumentReihenfolge und sich damit von der älteren vbFkt entfernt, die nahezu allen UDFs Vorbild war. Aber das hattest du ja erwähnt, wobei ich mangels TEXTVERKETTEN nicht weiß, ob es nicht noch andere Fallen gibt. Zumindest kann deine UDF keine FehlerWerte ausgeben, wodurch nur der Xl-StandardFehlerWert #WERT! möglich ist.
Das meine UDF nicht nur anders heißt und eine andere ArgumentReihenfolge hat, heißt nicht, dass ich jemals beabsichtigen würde, sie durch die neue xlFkt zu ersetzen, denn sie hat auch ein anderes Leistungsspektrum, was sehr hilfreich für andere Zwecke ist, aber dir wohl entgangen ist, zumal das wesentlich erst ab der nur Wenigen bekannten, bisher unveröffentlichten Vs1.5 greift. Es wäre also töricht, die durch eine primitivere Xl-Fkt ersetzen zu wollen.
Die SyntaxAbweichung, die dein Vorschlag aufweist, hat VJoin zwar auch, und das kann auch (bisher) nicht mit der Angabe eines diskontinuierlichen Bereichs kompensiert wdn, aber man könnte dafür vorerst eine andere UDF (ggf Xl-Fkt) verwenden, die den zusammenfasst.
Den eigentl HptUnterschied zwischen VJoin und TextJoin hast du aber bisher wohl nicht erkannt. Insofern kannst du gern fröhlich sein, aber das Lachen kommt aus meiner Ecke… :->
Luc :-?
Anzeige
Oder VJoin aus dem hiesigen Archiv. owT
05.01.2021 05:18:56
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge