Registriert seit: 24.05.2016
Version(en): 2007
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?
Registriert seit: 04.03.2015
Version(en): 2000 + meist 2010
20.01.2017, 15:50
(Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2017, 15:50 von lupo1.)
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.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
20.01.2017, 16:21
(Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2017, 16:22 von atilla.)
Hallo,
oder so:
Code:
zK = Application.WorksheetFunction.Substitute(zK, "a", "b", 15)
Gruß Atilla
Registriert seit: 04.03.2015
Version(en): 2000 + meist 2010
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.
Registriert seit: 06.12.2015
Version(en): 2016
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)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Klasse, Fennek!
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)
Registriert seit: 06.12.2015
Version(en): 2016
20.01.2017, 17:44
(Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2017, 17:45 von Fennek.)
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
20.01.2017, 17:56
(Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2017, 17:56 von Kuwer.)
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
Registriert seit: 04.03.2015
Version(en): 2000 + meist 2010
20.01.2017, 18:00
(Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2017, 18:01 von lupo1.)
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.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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.
(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