通过VBA替换变量文本

时间:2016-12-06 23:29:57

标签: excel-vba vba excel

我对VBA知之甚少,并倾向于通过EXCEL录制宏并从那里开始工作。我已经记录了这个宏,但我没有替换特定的文本,而是希望用特定单元格中的文本替换任何公式中的文本

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

因此,我没有查找特定文本字符串'Test Case',而是希望它查找我在单元格中输入的文本字符串,并将其替换为另一个单元格中的另一个文本字符串

2 个答案:

答案 0 :(得分: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

如果您在代码顶部设置变量,则可以轻松快速地更改其值,因此您无需查找和替换代码中的内容。

答案 1 :(得分:0)

避免使用$_SESSION方法。请尝试以下代码:

.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