2017-05-04 8 views
0

Ich möchte einen Text spalten und dann "[email protected]" Text zu dem geteiltenSplit und fügen Sie Text Excel-VBA

Eg hinzuzufügen.

S106-137-800_BOMS_0.xls >   [email protected]   0 

hier ist mein Code so weit:

k = InStr(str, "_") 
    j = InStr(k + 1, str, "_") 
    i = InStr(j + 1, str, ".") 

    rw.Offset(0, 1) = Left(str, j - 1) 
    rw.Offset(0, 2) = Mid(str, j + 1, i - j - 1) 

Gibt es eine Möglichkeit und "[email protected] aufzuzuspalten hinzufügen, wie in dem beispiel gezeigt?

+1

Ihre Frage ist nicht ganz klar, weil diese Hälfte ist nur der Code, den wir sehen. Meinst du so etwas wie 'rw.Offset (0, 1) = Links (str, j - 1) &" _ @ "'? Sie können sich auch die [Split-Funktion] (https://msdn.microsoft.com/en-us/library/6x627e5f (v = vs.90) .aspx) ansehen. Fügen Sie Ihren Fragen immer Folgendes hinzu: Was Ihr Code tatsächlich tut (Beispiel für Ihr tatsächliches Ergebnis) und was Sie als Ergebnis erwarten. –

+0

@Peh Entschuldigung, ich dachte, dass dieser Code ausreichend wäre, aber ja, das ist, was ich gesucht habe Danke! Bitte schreibe das in eine Antwort, damit ich es als Antwort registrieren kann. – Zeusper

Antwort

3

können Sie die InStrRev Funktion verwenden, um die Position zu bekommen (von rechts) der ersten _ vom Ende:

i = InStrRev(Str, "_") 

rw.Offset(, 1).Value = Left(Str, i) & "@" 
rw.Offset(, 2).Value = Mid(Str, i + 1, InStr(Str, ".") - i - 1) 
+0

Diesmal hast du gewonnen;) –

+0

@Peh Ich bin nicht gegen Yu, oder? mit dir helfen neuen Jungs in VBA und lernen auch neue Sachen –

+1

Natürlich bin ich völlig in Ordnung! Sie haben meine Stimme bekommen, weil ich "InStrRev" vorgeschlagen habe. Immer gut, verschiedene Lösungen zu sehen. –

Verwandte Themen