Ersetzen von Zeichen an bestimmter Stelle
#1
Hallo,
habe mal eine kleine Frage an euch.

Code:
Dim  zK$
zK = String(100, "a")

Mit obiger Anweisung erzeuge ich eine Zeichenkette zk die aus 100 a's besteht, also

zk = "aaaaa....... "

Wenn ich jetzt z.B. an der 15. Stelle dieser Zeichenkette, dass a durch ein b ersetzen will, wie mache ich das am schnellsten?
Top
#2
zk = Left(zk, 14) & "b" & Right(zk, 85) abzuraten!

oder für variabel lange Strings

zk = Left(zk, 14) & "b" & Mid(zk, 16) ist auch für fixe Längen besser.
Top
#3
Hallo,

oder so:


Code:
zK = Application.WorksheetFunction.Substitute(zK, "a", "b", 15)
Gruß Atilla
Top
#4
Hallo atilla,

WECHSELN wechselt das 15. "a" in "b".

Das ist - allgemein - etwas anderes, als an Position 15, egal was, zu tauschen.

TE war hier nicht konsequent in der Formulierung.
Top
#5
Hallo,

es geht auch so:

in A1: aaaaa


Code:
sub Fen()
Tx = cells(1,1)
mid(Tx, 3) = "b"
cells(1,1) = tx
end sub

mfg

(abgeguckt bei Rick Rothstein)
Top
#6
Klasse, Fennek!  Thumps_up
Ist das ein Bug oder ein Feature?
;)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#7
Hallo RPP,

keine Ahnung, ich sammele nur aus verschieden Quellen. Rick's Webseite ist www.excelfox.com und im "Mastercorner" gibt sehr interessante Diskussionen mit snb.

mfg
Top
#8
Hallo,

Atilla war ja nah dran. ERSETZEN() wäre die richtige Funktion:
Sub aaa()
 Dim zk As String
 zk = String(100, "a")
 zk = Application.WorksheetFunction.Replace(zk, 15, 1, "b")
 Debug.Print zk
End Sub
Gruß Uwe
Top
#9
Irgendwie kaputt, und doch geil.

Mid(tx, 3) = "blablabla" 'überschreibt tatsächlich Stelle 3-11!

zu Kuwer:
Mid(zk, 15) = "b"
ist aber doch eindeutig schicker! Das schönste ist: zk wird in der Zeile nur einmal angesprochen.
Top
#10
Hallo,

(20.01.2017, 18:00)lupo1 schrieb: Irgendwie kaputt, und doch geil.
Nö, steht sogar in der Hilfe, dass es eine Mid-Funktion und eine Mid-Anweisung gibt. Wink

(20.01.2017, 18:00)lupo1 schrieb: zu Kuwer:
Mid(zk, 15) = "b"
ist aber doch eindeutig schicker! Das schönste ist: zk wird in der Zeile nur einmal angesprochen.
sicher. Ich wollte ja nur Atilla etwas trösten.  :100:

Gruß Uwe
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste