Registriert seit: 01.03.2016
Version(en): 2016
Hallo,
gegeben ist (beispielhaft!) folgendes Nachnamen-Array:
farr = Array( "Kohl", "Merkel", "Wehner", "Adenauer", "Schmidt", "Schröder","Genscher")
Jetzt habe ich Zeichenketten, die folgendermaßen aussehen:
strZ1 = "Helmut Herbert Gerhard Merkel Hans-Dietrich"
strZ2 = "Konrad Schröder Herbert Gerhard Kohl Angela"
Wie bekomme ich die Nachnamen, also allgemeiner gesprochen die Werte die in dem Array stehen und festgelegt wurden, dass sie nicht in den Zeichenketten strZ1 und strZ2 stehen dürfen
so schnell wie möglich weg? Da die Replace Funktion ja nur Strings ersetzt, müßte ja hier mühselig eine Schleife durchlaufen werden.
Registriert seit: 04.04.2017
Version(en): 2013
Hallo,
(26.04.2017, 15:25)Elke Boese schrieb: müßte ja hier mühselig eine Schleife durchlaufen werden.
Was genau ist daran "mühselig"? Mir fällt kein anderer Weg ein.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Elke,
richtig erkannt. Dann machen wir doch einen String draus

Code:
Sub test()
arr1 = Array("a", "b", "c")
str1 = Join(arr1, ",")
str1 = Replace(str1, "b", "")
arr1 = Split(str1, ",")
End Sub
Du erhälst so statt b ein leeres Feld. Ist das nicht erwünscht, müsste man noch die Kommata behandeln. Statt Komma gehen natürlich auch andere Trennzeichen, je nachdem, was eindeutig passt.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 04.03.2015
Version(en): 2000 + meist 2010
28.04.2017, 15:43
(Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2017, 15:44 von lupo1.)
TE möchte aber statt
strZ1 = "Helmut Herbert Gerhard Merkel Hans-Dietrich"
strZ2 = "Konrad Schröder Herbert Gerhard Kohl Angela"
richtig haben:
strZ1 = "Helmut Herbert Gerhard Hans-Dietrich"
strZ2 = "Konrad Herbert Gerhard Angela"
Daher musst Du tatsächlich das ganze Array für Replace durchlaufen, wie Jonas schon schrieb. In einer Schleife.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
Schleife? Da sage ich nach wie vor nein.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 01.03.2016
Version(en): 2016
@André
danke für deinen Post. Habe die Sache dann gestern abend auf der Grundlage deines Beitrages versucht. Kriege ich aber leider nicht hin!
Bitte zeig doch mal wie das deiner Meinung nach ohne Schleife funktionieren sollte. Danke!
Registriert seit: 04.03.2015
Version(en): 2000 + meist 2010
29.04.2017, 10:40
(Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2017, 10:40 von lupo1.)
Ich vermute, schauan hat nicht verstanden, dass ALLE Nachnamen, die im Array gelistet sind, aus den beiden Strings entfernt werden sollen, anstelle nur EINES (bei ihm: "b").
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
29.04.2017, 10:52
(Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2017, 10:52 von schauan.)
Hallo Lupo,
Ich denke, es ist gar nicht so schwer zu verstehen, die codezeile zu kopieren und auf einen zweiten Namen anzupassen... Ich bin nur gerade am Smartphone und da ist das getippe etwas unkomfortabel.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 04.03.2015
Version(en): 2000 + meist 2010
Daran krankt es, denn Dein Name ist ein Inhalt, keine Variable. Elke möchte aber das Array mit egal welchem Inhalt auf die beiden Strings anwenden.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo lupo,
Dein strz2 ist z. B. Ein string. Da tauschst Du erst den Herbert durch den Gerhard aus, dann den Schröder durch denHerbert und zum Schluss nimmst Du den Kohl mit nix raus. Alles 3 mit 3 replace und ggf noch eine Trennzeichenkorrektur um das Array zu kürzen.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)