使用按钮vba替换字符串

使用按钮vba替换字符串,vba,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, replac

编辑:

我更喜欢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”替换。 但现在我还想删除字符串的一部分

例如,字符串是:

 a(hey)/(qworty);
 c(yow)/(asdf);
 e(wow)/(zxcv_786);
单击按钮时,文本应替换为:

b(hey); 
c(yow);
e(wow);
希望你能理解。 谢谢。

你可以试试这个:

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
你可以试试这个:

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

虽然您可以使用RegEx运行find和replace(本网站上有很多示例),但您也可以通过在“/”处拆分字符串并将数组的第一个元素写回单元格来循环范围、创建和数组

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

虽然您可以使用RegEx运行find和replace(本网站上有很多示例),但您也可以通过在“/”处拆分字符串并将数组的第一个元素写回单元格来循环范围、创建和数组

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

列(“B”)。替换内容:=”/(qworty)”,替换:=”,查看:=xlPart,匹配案例:=False
我更改了示例。抱歉。
列(“B”)。替换内容:=”/(qworty)”,替换:=”,查看:=xlPart,匹配案例:=False
我更改了示例。抱歉。@akamariaclaraaa,你通过了吗?@akamariaclaraaa,有机会从你那里得到反馈吗?@akamariaclaraaa,你通过了吗?@akamariaclaraaa,有机会从你那里得到反馈吗?