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很容易安装和使用:
- ALT-F11调出VBE窗口
- ALT-I ALT-M打开一个新的模块
- 粘贴东西,closuresVBE窗口
如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx
要删除macros:
- 如上所示调出VBE窗口
- 清除代码
- closuresVBE窗口
从Excel工作表使用macros:
- ALT-F8
- selectmacros
- 触摸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
(我们只添加一行代码)