Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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?
Antworten 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.
Antworten Top
#3
Hallo,

oder so:


Code:
zK = Application.WorksheetFunction.Substitute(zK, "a", "b", 15)
Gruß Atilla
Antworten 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.
Antworten 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)
Antworten 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)
Antworten 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
Antworten 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
Antworten 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.
Antworten Top
#10
Hallo,

(20.01.2017, 17: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, 17: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
Antworten Top


Gehe zu:


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