2016-12-06 76 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 

把字符串被替換成電池A1,並替換字符串爲A2

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 

如果你在你的代碼的頂部設置變量,它會很容易和快速的進行修改,他們的價值觀,所以你不必查找和替換的東西深藏在你的代碼。