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

Excel情报局
Excel职场联盟




前言|职场实例
今天在微信答疑群中遇到一个价值比较高的问题:
如何批量给1000个Excel工作簿的同一单元格位置添加公式?
有的小伙伴会误认为给1000个“工作表”的同一单元格位置添加公式,误想象成了在同一个工作簿下的1000个工作表,这是典型的“工作簿”与“工作表”概念混淆,基础知识认识不清的情况。如果是这种情况下,那问题就简单了,直接全选所有工作表,在任意一个工作表上的指定单元格输入公式,回车确定后,所有的工作表相同位置就都输入了公式。
但这是1000个Excel工作簿,那这个问题就复杂了。其实不用害怕,小编就向大家介绍一个“10秒钟的操作”来解决这个问题。
我们就用一个简单的例子来模拟这个复杂的问题:
如下图所示:我们将2个工作簿放在一个文件夹内,分别为“Excel情报局01”和“Excel情报局02”,我们需要在每个工作簿中的“Sheet1”工作表的C2单元格输入公式“=A2+B2”进行求和。
特点:
①有若干个工作簿;
②每个工作簿中可能有单个或多个工作表;
③我们只能批量给每个工作簿中的一个工作表的相同位置添加内容;
④且每个工作表的名称必须一致,比如本例中都为“Sheet1”。



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
重点|VBA代码释义




赞 (0)
