令人崩溃的EXCEL查找替换范围问题

一个工作表sheet1中A,B列都有值1,用下面语句将A列中的1该为2
sheet1.Range(”A1:A6″).Replace What:=”1″, Replacement:=”2″, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

问题是,如果excel“查找和替换”中的“替换范围”设定为“工作表”,可以正常替换,即只有A列中的1被改为2。

但是不小心将excel中crtl+h中“替换范围”设定为“整个工作簿”,那么A列和B列中的1都被改为2,而其他工作表中存在的1,也会被改为2。这意味着excel中查找和替换优先级高于宏的查找和替换。那么,如何在“替换范围”设定为“整个工作簿”的情况下,用replace命令只是替换指定范围内的值呢?或者如何先将替换范围改为“sheet”,然后再执行替换。

这个问题暂时无解,先记录下来。

Join the Conversation

1 Comment

Leave a comment

Your email address will not be published. Required fields are marked *