放到新工作簿中,因为下面代码不汇总代码所在的工作簿。
Sub 汇总()
Dim Path As String, Spath As String
Dim Sh As Worksheet, Folder As Object
Dim N As Double, Num As Long
Dim R1 As Range, R As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Path = ThisWorkbook.Path & "\"
Spath = Dir(Path & "*.xls*")
Do While Len(Spath)
If Spath = ThisWorkbook.Name Then Spath = Dir()
With Workbooks.Open(Path & Spath)
For Each Sh In .Worksheets
Set R1 = Sh.Cells.Find("19801", lookat:=xlPart)
If R1 Is Nothing Then GoTo L1
Set R = R1
Do
N = N + 1
Set R = Sh.Cells.Find("19801", R, lookat:=xlPart)
Range("A" & N).Value = R.Value
Loop Until R1.Address = R.Address
L1:
Next
.Close False
End With
Spath = Dir()
DoEvents
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "完成"
End Sub
追问。有一行报错了。Range("A" & N).Value = R.Value 这句 报错信息是 方法'Range'作用于对象'_Global'时失败。
追答放在某个表里面,不要放模块中。