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

如果你在你的代码的顶部设置变量,它会很容易和快速的进行修改,他们的价值观,所以你不必查找和替换的东西深藏在你的代码。