Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
512to516
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
512to516
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA: gibt es Gegenteil von "split" ?

VBA: gibt es Gegenteil von "split" ?
08.11.2004 22:00:48
"split"
Hallo Excel-Freunde,
ich mochte in einem String einen bestimmten Teilstring ersetzen.
Mein String lautet zb. "30;50;30;20"
Jetzt soll in diesem Bsp die "30" an der 3. Stelle durch "100,25" ersetzt werden.
Hierfür habe ich folgende Funktion geschrieben (s.u)
Da die Strings aber teilweise sehr lang sind, würde ich die Funktion gerne noch optimieren.
Meine Frage:
Kann man auf die For-Next-Schleife irgendwie verzichten?
Ich suche eigentlich das Gegenteil von "Split" (...im Sinne von: setz den Array einfach wieder zusammen...)
Oder gibt es sonst einen Weg?
Vielen Dank für eure Hilfe
Gruß
Christoph
Option Explicit

Function ReplaceData(strGes, Cnt as Byte, Repl, Delimit as String) As String
'Bsp: ReplaceData("30;50;30;20", 3, 100.25, ";") ersetzt
'den dritten Eintrag im String durch "100,25"
Dim arr, i%
arr = Split(strGes, Delimit)
arr(Cnt - 1) = Repl
For i = 0 To UBound(arr)
ReplaceData = ReplaceData & arr(i) & Delimit
Next i
ReplaceData = Left(ReplaceData, Len(ReplaceData) - 1)
End Function

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: gibt es Gegenteil von "split" ?
"split"
Das Gegenstück zu Split ist Join.
Ulf
Ich sollte wirklisch schneller schreiben :-) o.T.
Ramses
...
Danke! das klappt prima
08.11.2004 22:17:08
Christoph
Hi Ulf,
genau das hab ich gesucht.
vielen Dank
Christoph
Glaub ich nicht...
Ramses
Hallo
hast du meinen Beitrag gelesen und deine Function mal getestet ?
Gruss Rainer
AW: Glaub ich nicht...
08.11.2004 22:35:10
Christoph
Hi Rainer,
ja...hab ich (oder hab ich was übersehen?
Mein Funktion lautet:

Function ReplaceData(strGes, Cnt As Byte, Repl, Delimit$) As String
Dim arr
arr = Split(strGes, Delimit)
arr(Cnt - 1) = Repl
ReplaceData = Join(arr, Delimit)
End Function

Geb ich zB in "B1" ein:
=ReplaceData(A2;3;D2;";")
(in A2 steht "20;30;40;50", in D2 "100,25")
kommt das raus was ich will.
Siehst du einen Haken?
Christoph
Anzeige
AW: Glaub ich nicht...
Ramses
Hallo
hast du das wirkich mal ausprobiert ;-)
Belegung
 EFGH
1    
2    
3 String30;50;30;20 
4 zu ersetzen3 
5 Ergebnis30;50;30;100.25 
6 Sollte aber sein30;50;100.25;20 
7    
8 wenn der 3. Eitnrag ersetzt werden soll  
9    
Formeln der Tabelle
G5 : =replacedata(G3;G4;100.25;";")
 

Gruss Rainer
Anzeige
AW: VBA: gibt es Gegenteil von "split" ?
"split"
Hallo
es geht schon ein wenig einfacher :-)
Option Explicit

Function ReplaceData(strGes, Cnt As Byte, Repl, Delimit As String) As String
'Bsp: ReplaceData("30;50;30;20", 3, 100.25, ";") ersetzt
'den dritten Eintrag im String durch "100,25"
Dim arr As Variant
arr = Split(strGes, Delimit)
arr(Cnt) = Repl
ReplaceData = Join(arr, Delimit)
End Function


Sub Test_Replace()
MsgBox ReplaceData("30;50;30;20", 2, 100.25, ";")
End Sub

ACHTUNG:
Das Array beginnt bei 0 !!! mit der Zählung
Gruss Rainer
Anzeige
Merci
08.11.2004 22:25:16
Christoph
Hi Rainer,
genauso hab ich es nach dem "schnelleren Tipp von Ulf" jetzt umgesetzt.
aber wir machen hier ja kein Wettrennen.
auch dir vielen Dank
Christoph
AW: Merci
Ramses
Hallo
der Hinweis auf den vorherigen Beitrag bezieht sich nicht auf die Geschwindigkeit, sonder eigentlich auf das Zählen innerhalb des Array's !!!
Wenn du "3" übergibst, wird der vierte Eintrag des Array's ersetzt.
Gruss Rainer
ja, das hab ich verstanden...
08.11.2004 22:37:36
Christoph
deshalb setze ich der Übersicht halber arr(Cnt-1)
Gruß
Christoph
Das hab ich wiederum überlesen :-)
Ramses
Hallo
das ist mir durch die Lappen gegangen nachdem ich den Code umgeschrieben habe :-))
Sorry
Gruss Rainer
Anzeige
nochmals merci...und gute Nacht (o.T.)
08.11.2004 22:48:58
Christoph

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige