2017-03-03 88 views
0

编辑:使用按钮替换字符串vba

我更关注PHP,我刚开始学习VBA。 这是我为按钮制作的代码。

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 

现在,我的问题是:在 代码就像上面,它发生的“B”将与“一”来代替。 但现在我也想删除一部分字符串。

例如字符串是:

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

当我点击按钮上的文本应该被替换为:

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

希望你明白。 谢谢。

+1

'列( “B”)更换什么:= “/(qworty)”,替换:= “”,LOOKAT:= xlPart,MatchCase:= FALSE' –

+0

我改变这些实施例。抱歉。 – akamariaclaraaa

回答

2

你可以试试这个:

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,你通过它了吗? – user3598756

+0

@akamariaclaraaa,有没有机会从你那里得到反馈? – user3598756

0

虽然你可以运行一个查找和使用正则表达式替换(有很多的例子在本网站),你也可以循环在你的范围,建立并通过分割阵列字符串放在“/”处,并将数组的第一个元素写回单元格。

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