替换选定命名范围内的值

时间:2019-03-14 01:19:30

标签: excel vba replace

单元格A1到单元格A7已被命名为Tokyo。单元格A1,A2,A6,A10的值为“ [ABC]”。运行代码时,应将单元格A1,A2,A6中的值替换为“ 15迁移”,并且单元格A10的值应保持为“ [ABC]”,因为它超出了命名范围。

我尝试了以下操作,但是它也替换了指定范围之外的值:

For Each cell In Range("Tokyo")
    Cells.Replace What:="[*]", Replacement:="[15  Migration]", LookAt:=Part, SearchOrder:=ByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next cell

1 个答案:

答案 0 :(得分:1)

  1. 不需要循环-只需使用Range.Replace
  2. 真正的问题是Cells.Replace引用了ActiveSheet中的所有个单元格,因此替换会在所讨论的范围之外 发生。 / li>
  3. 请注意,您需要xlPartxlByRows,而不是PartByRows。有关更多详细信息,请参见Range.Replace文档。

Range("Tokyo").Replace What:="[*]", Replacement:="[15  Migration]", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False