批量给1000个工作簿的同一单元格位置添加公式,全网首发高效技巧!

Excel情报局
Excel职场联盟
生产挖掘分享Excel基础技能
Excel爱好者大本营
用1%的Excel基础搞定99%的职场问题
做一个超级实用的Excel公众号
Excel是门手艺玩转需要勇气
数万Excel爱好者聚集地
SUPER EXCEL MAN

前言|职场实例

今天在微信答疑群中遇到一个价值比较高的问题:

如何批量给1000个Excel工作簿的同一单元格位置添加公式?

有的小伙伴会误认为给1000个“工作表”的同一单元格位置添加公式,误想象成了在同一个工作簿下的1000个工作表,这是典型的“工作簿”与“工作表”概念混淆,基础知识认识不清的情况。如果是这种情况下,那问题就简单了,直接全选所有工作表,在任意一个工作表上的指定单元格输入公式,回车确定后,所有的工作表相同位置就都输入了公式。

但这是1000个Excel工作簿,那这个问题就复杂了。其实不用害怕,小编就向大家介绍一个“10秒钟的操作”来解决这个问题。

我们就用一个简单的例子来模拟这个复杂的问题:

如下图所示:我们将2个工作簿放在一个文件夹内,分别为“Excel情报局01”和“Excel情报局02”,我们需要在每个工作簿中的“Sheet1”工作表的C2单元格输入公式“=A2+B2”进行求和。

特点:

①有若干个工作簿;

②每个工作簿中可能有单个或多个工作表;

③我们只能批量给每个工作簿中的一个工作表的相同位置添加内容;

④且每个工作表的名称必须一致,比如本例中都为“Sheet1”。

解决方案|步骤展示
首先我们打开一个新建的空白的工作簿,来用作代码运行的工作簿。如下图所示:我们打开工作簿“运行代码表”。
然后我们在“运行代码表”工作簿中,右击任意一个工作表名称标签,点击“查看代码”按钮,进入VBA代码编辑窗口,点击上方的“插入”选项卡,插入一个新的“模块”,在模块中将下面一段代码复制粘贴进去。点击“运行-运行子过程/用户窗体”按钮。等待几秒,代码自动运行完毕。关闭VBA窗口。
代码如下:
Option ExplicitSub 写入公式()Dim wb As WorkbookDim mypath, f As StringDim Rng As RangeDim m As IntegerApplication.DisplayAlerts = FalseApplication.ScreenUpdating = Falsemypath = ThisWorkbook.Path & "\"f = Dir(mypath & "*.xl*")Do While f <> "" If f <> ThisWorkbook.Name Then'Set wb = Workbooks.Open(mypath & f)Set wb = GetObject(mypath & f)With wb .Sheets("sheet1").Range("C2:C2") = "=A2+B2" For Each Rng In .Sheets("sheet1").Range("C2:C2") If Rng.Value = "错误" Then m = Sheet1.Range("A65536").End(xlUp).Row Sheet1.Cells(m, 1).Offset(1, 0) = wb.Name End If NextEnd WithWindows(f).Visible = Truewb.Close True End If f = DirLoop Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
我们回到文件夹当中,打开两个工作簿“Excel情报局01”和“Excel情报局02”,发现已经批量为每个工作簿中的“Sheet1”工作表的C2单元格输入完成了公式“=A2+B2”,且自动得出了求和结果。

重点|VBA代码释义

代码是一个固定模板,只有下面两句代码需要根据我们具体的实际情况进行灵活更改。
① .Sheets("sheet1").Range("C2:C2") = "=A2+B2"
②For Each Rng In .Sheets("sheet1").Range("C2:C2")
"sheet1"代表所有工作簿中工作表的名称
"C2:C2"是我们需要添加公式的单元格位置。这里既可以是某个单元格,也可以是某个数据区域。
"=A2+B2"即我们要统一添加的公式内容,这里既可以是公式,也可以是某个具体的常量。
阅读完文章之后,希望小伙伴们在文章底部帮助小编[点赞]点亮[在看]并分享转发到[朋友圈],坚持持续分享的路上很辛苦,需要有你们的鼓励与支持!只要有了大家的鼓励与支持,小编才能更加有热情的帮助大家。您也可以通过在文章底部[留言]的方式反馈实际办公中遇到的Excel各种问题。
(0)

相关推荐