批量给1000个工作簿的同一单元格位置添加公式,全网首发高效技巧!
Excel情报局
Excel职场联盟
前言|职场实例
今天在微信答疑群中遇到一个价值比较高的问题:
如何批量给1000个Excel工作簿的同一单元格位置添加公式?
有的小伙伴会误认为给1000个“工作表”的同一单元格位置添加公式,误想象成了在同一个工作簿下的1000个工作表,这是典型的“工作簿”与“工作表”概念混淆,基础知识认识不清的情况。如果是这种情况下,那问题就简单了,直接全选所有工作表,在任意一个工作表上的指定单元格输入公式,回车确定后,所有的工作表相同位置就都输入了公式。
但这是1000个Excel工作簿,那这个问题就复杂了。其实不用害怕,小编就向大家介绍一个“10秒钟的操作”来解决这个问题。
我们就用一个简单的例子来模拟这个复杂的问题:
如下图所示:我们将2个工作簿放在一个文件夹内,分别为“Excel情报局01”和“Excel情报局02”,我们需要在每个工作簿中的“Sheet1”工作表的C2单元格输入公式“=A2+B2”进行求和。
特点:
①有若干个工作簿;
②每个工作簿中可能有单个或多个工作表;
③我们只能批量给每个工作簿中的一个工作表的相同位置添加内容;
④且每个工作表的名称必须一致,比如本例中都为“Sheet1”。
Option Explicit
Sub 写入公式()
Dim wb As Workbook
Dim mypath, f As String
Dim Rng As Range
Dim m As Integer
Application.DisplayAlerts = False
Application.ScreenUpdating = False
mypath = 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
Next
End With
Windows(f).Visible = True
wb.Close True
End If
f = Dir
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
重点|VBA代码释义
赞 (0)