我正在使用以下代码来查找curr_symbol并将其替换为new_symbol。即使我已经在代码中指定了它应该在特定的行号中这样做,它会将查找和替换应用于所选工作表中的所有行,这不是我想要的。查找并替换VBA中的特定范围
Sub find_replace()
Dim curr_symbol, new_symbol As String
Dim row_num, last_row As Integer
row_num = ActiveSheet.Cells(1, "A").Value 'row_num=9
last_row = ActiveSheet.Cells(2, "A").Value 'last_row=11
Do While row_num < last_row
curr_symbol = ".ABC130301"
new_symbol = ActiveSheet.Cells(row_num, "E").Value 'new_symbol=".BAC130306"
With ActiveSheet.UsedRange
.Replace curr_symbol, new_symbol, xlPart
End With
row_num = row_num + 1
Loop
End Sub
我甚至尝试用下面的语句替换With ActiveSheet.UsedRange....End With
,但也替换所有行的curr_symbol。
ActiveSheet.Cells.Replace What:=curr_symbol, Replacement:=new_symbol, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
我该如何解决这个问题,以便它只替换指定行中的字符串。
感谢您的解释和抛开 - 这是有助于知道,因为我不知道 – user1155299 2013-02-25 00:14:53
没问题,乐于帮助。写了一些代码,然后认为我没有真正帮助任何人,所以添加了一个解释。教一个人钓鱼和所有:)。至于旁边......愚蠢的VBA行为:/。嘿。 – mkingston 2013-02-25 00:16:33
是的,我同意:-) – user1155299 2013-02-25 00:19:53