2016-12-06 4 views
0

私はVBAに関する知識はほとんど持っておらず、EXCELを使ってマクロを記録し、そこから作業する傾向があります。私は、このマクロを記録しているが、代わりに特定のテキストを置き換えるので、私はそれではなく、特定のテキスト文字列「テストケース」私を探しているの可変テキストをVBAで置き換える

Sheets("Roulette Summary").Select 
Columns("J:J").Select 
Selection.Replace What:="Test case", Replacement:="Colin", LookAt:=xlPart _ 
    , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 

だから、特定のセルで見つかったテキストを任意の式で見つかったテキストを置換したいですセルに入力したテキスト文字列を探して、別のセルの別のテキスト文字列に置き換えます。

答えて

0

.Selectメソッドを使用しないでください。以下のコード試してみてください。

Sub Test() 

    With Sheets("Roulette Summary") 
     .Columns("J:J").Replace _ 
      What:=.Range("A1").Value, _ 
      Replacement:=.Range("A2").Value, _ 
      LookAt:=xlPart, _ 
      SearchOrder:=xlByRows, _ 
      MatchCase:=False, _ 
      SearchFormat:=False, _ 
      ReplaceFormat:=False 
    End With 

End Sub 

A2にセルA1、および置換文字列に置換される文字列を入れてください。

1

可能であればSelectを避けてください。変数をブック内のセルの値に設定します。これは別のシート上にある可能性があります。あなたのコードの先頭に変数を設定した場合、その後

Sub test() 
Dim FindMe As String, UseMe As String 

FindMe = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value 
UseMe = "Colin" 

ThisWorkbook.Worksheets("Roulette Summary").Range("J:J").Replace _ 
    What:=FindMe, Replacement:=UseMe, LookAt:=xlPart _ 
    , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False 
End Sub 

のようなもの、それらの値を変更することは簡単かつ迅速になりますので、あなたのコード内の深いものを見つけて交換する必要はありません。

関連する問題