首先发帖,请善待:)
我正在通过将上一年(2015年)的计算重复到最近一年的数据(2016年)来更新数据集。我已将旧年的公式复制到新列中,我只需要更改每个公式的几个部分。
实施例
2015公式:= COUNTIFS( Data15 [标题],数据表!$ B $ 2, Data15 [变量 2015 ],"变量", Data15 [variable2 2015 ],& #34;< = 100&#34)
2016公式:= COUNTIFS( Data16 [标题],数据表!$ B $ 2, Data16 [变量 2016 ],"变量", Data16 [variable2 2016 ],& #34;< = 100&#34)
我只需更改公式的两部分:Data15 - > Data16,2015 - > 2016.有数百个这些公式要更新,我可以手动进入并更新公式的这些小部分。对于所有公式,同时查找和替换公式的部分要快得多。但是 - 据我所知 - 查找和替换只允许您一次替换一件事(即Data15 - > Data16 OR 2015 - > 2016)。我试图更换一个,然后更换另一个,但公式中断,除非它们都被替换在一起。
问题:在Excel中,有没有办法同时查找和替换公式的多个部分?基本上,我想要替换Data15 - >数据16和2015 - > 2016年在同一个查找和替换中,用于一批单元格。那可能吗?
谢谢!
答案 0 :(得分:2)
这是一个宏和说明:
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
宏非常易于安装和使用:
如果保存工作簿,宏将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
删除宏:
使用Excel工作表中的宏:
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
必须启用宏才能使其生效!
修改#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
(我们只添加一行代码)