我对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',而是希望它查找我在单元格中输入的文本字符串,并将其替换为另一个单元格中的另一个文本字符串
答案 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
。