2017-03-03 3 views
0

Bearbeitet:Ersetzen einer Zeichenfolge mit vba

Ich bin mehr auf PHP und ich habe gerade angefangen, VBA zu lernen. Dies ist der Code, den ich für den Button gemacht habe.

Private Sub btnConvert_Click() 

Dim a As String 
Dim b As String 
Dim c As String 
Dim d As String 
Dim e As String 
Dim f As String 


a = "a" 
b = "b" 
c = "c" 
d = "d" 
e = "e" 
f = "f" 
Columns("B").Replace what:=a, replacement:=b, lookat:=xlPart, MatchCase:=False 
Columns("B").Replace what:=c, replacement:=d, lookat:=xlPart, MatchCase:=False 
Columns("B").Replace what:=e, replacement:=f, lookat:=xlPart, MatchCase:=False 
End Sub 

Nun, mein Problem ist: Genau wie in dem obigen Code, geschieht es, dass "b" wird mit "a" ersetzt werden. Aber jetzt möchte ich auch einen Teil einer Zeichenfolge entfernen.

Zum Beispiel die Saiten sind:

a(hey)/(qworty); 
c(yow)/(asdf); 
e(wow)/(zxcv_786); 

Wenn ich auf die Schaltfläche klicken sollte der Text wie Fassung:

b(hey); 
c(yow); 
e(wow); 

Hoffnung, die Sie verstehen. Danke.

+1

'Spalten ("B") ersetzen, was. = "/ (Qworty)", Ersatz: = "", lookat: = xlPart, Match: = false' –

+0

änderte ich die Beispiele. Es tut uns leid. – akamariaclaraaa

Antwort

2

Sie könnte dies versuchen:

Private Sub btnConvert_Click() 

    Dim a As String 
    Dim b As String 
    Dim c As String 
    Dim d As String 
    Dim e As String 
    Dim f As String 


    a = "a" 
    b = "b" 
    c = "c" 
    d = "d" 
    e = "e" 
    f = "f" 

    With columns("B") 
     .Replace what:="/*;", Replacement:=";", lookat:=xlPart, MatchCase:=False 
     .Replace what:=a & "(", Replacement:=b & "(", lookat:=xlPart, MatchCase:=False 
     .Replace what:=c & "(", Replacement:=d & "(", lookat:=xlPart, MatchCase:=False 
     .Replace what:=e & "(", Replacement:=f & "(", lookat:=xlPart, MatchCase:=False 
    End With 
End Sub 
+0

@akamariaclaraaa, bist du durchgekommen? – user3598756

+0

@akamariaclaraaa, jede Chance, Feedback von Ihnen zu bekommen? – user3598756

0

Obwohl Sie eine Suche laufen konnte und ersetzen RegEx verwenden (es gibt viele Beispiele auf dieser Seite) Sie könnten auch Schleife über dem Bereich, erstellen und Array durch die Aufspaltung string an "/" und schreibt das erste Element des Arrays zurück in die Zelle.

Private Sub btnConvert_Click() 
Dim c As Range 
Dim arr() As String 

    'Loop Column B. Change This If It Doesn't Exactly Meet Your Requirements 
    For Each c In Range("B:B") 
     'Exit When We Get To An Empty Cell. Again This May Need To Be Changed Depending On Requirements 
     If Len(c) = 0 Then Exit For 
     'Create An Array 
     arr() = Split(c, "/") 
     'Write The First Element Back 
     c = arr(0) 
    Next c 

End Sub 
Verwandte Themen