Excel – 同时查找和replace配方的多个部分

第一篇文章,请亲切:)

我正在更新一个数据集,重复上一年(2015年)到最近一年的数据(2016年)的计算。 我已经把旧的公式复制到新的列中,我只需要改变每个公式的几个部分。

2015年公式:=数据15 [标题],数据表!$ B $ 2,数据15 [variables2015 ],“variables”,数据15 [variables2 2015 ],“<= 100”)

2016年公式:= COUNTIFS( Data16 [标题],数据表!$ B $ 2, Data16 [variables2016 ],“variables”, Data16 [variables2 2016 ],“<= 100”)

我只需要更改公式的两部分:Data15 – > Data16,2015 – > 2016.有数百个这些公式需要更新,我可以手动进入并更新公式的这些小部分。 find并replace所有公式的部分同时更快。 然而 – 据我所知 – 查找和replace只允许你一次replace一件事情(即Data15 – > Data16或2015 – > 2016)。 我试图replace一个,然后replace另一个,但公式会中断,除非他们一起被replace。

问题:在Excel中,是否可以同时查找和replace配方的多个部分? 本质上,我想在同一个查找和replace中replaceData15 – > Data16和2015 – > 2016,为一批单元格。 那可能吗?

谢谢!

这里是一个macros和说明:

Sub FixFormulas() Dim r As Range, rng As Range Dim s As String Set rng = Cells.SpecialCells(xlCellTypeFormulas) For Each r In rng r.Value = "'" & r.Formula r.Replace what:="2015", Replacement:="2016" r.Replace what:="Data15", Replacement:="Data16" r.Formula = r.Value Next r End Sub 

macros很容易安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除macros:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel工作表使用macros:

  1. ALT-F8
  2. selectmacros
  3. 触摸RUN

要了解有关macros的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

macros必须启用这个工作!

编辑#1:

丢弃以前的代码并改为使用它:

 Sub FixFormulas2() Dim r As Range, rng As Range Dim s As String Set rng = Cells.SpecialCells(xlCellTypeFormulas) Set rng = Intersect(rng, Range("Z4:AA120")) For Each r In rng r.Value = "'" & r.Formula r.Replace what:="2015", Replacement:="2016" r.Replace what:="Data15", Replacement:="Data16" r.Formula = r.Value Next r End Sub 

(我们只添加一行代码)