2017-03-03 17 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」に置き換えられますことを起こります。 しかし、今でも文字列の一部を削除したいと思います。

たとえば、文字列は次のとおりです。

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 
+1

'列( "B")もの置き換えます。= "/(qworty)" を、交換:= ""、ルックアット:= xlPart、MatchCase:= false'の –

+0

Iは、例を変更しました。ごめんなさい。 – akamariaclaraaa

答えて

2

あなたはこれを試みることができます文字列を "/"に置き、配列の最初の要素をセルに書き戻します。

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 
+0

@akamariaclaraaa、あなたはそれを通過しましたか? – user3598756

+0

@akamariaclaraaa、あなたからのフィードバックを得る機会はありますか? – user3598756

0

をして分割することにより、配列:

関連する問題