只汇总每个附件1工作簿的“附表6”中“专业1”所在的数据行的问题,已解决
关于打开工作簿出现错误提示的问题,暂不知原因。我是将你的所有附件1工作簿复制处理后,本程序才正常运行
还有一个提示,就是如果附件1的“附表6”A列没有“专业1“时,match函数会出错,导到程序中途停止运行。如果你想忽略此错误,可在程序语句的开头处,加一句 on error resume next 即出现错误,继续执行的意思
Sub 汇总()
Dim arr数据
Dim s行 As Integer
Set wk汇总 = Worksheets("附表6")
yesno = MsgBox("本操作将与本工作簿同文件夹的excel明细数据自动复制到本工作簿中" & _
vbCrLf & " 如果未准备好,请点击“否”退出程序", vbYesNo + vbDefaultButton2)
If yesno = vbNo Then
Exit Sub
End If
wkcount = 0
With wk汇总.Range("A2:F5000")
.UnMerge
.ClearContents
End With
'******************************************
Filename = Dir(ThisWorkbook.Path & "\*.xls")
Do While Filename <> ""
If Filename <> ThisWorkbook.Name Then
sr = VBA.Mid(Filename, 5, 2)
fn = ThisWorkbook.Path & "\" & Filename
Set wb = Workbooks.Open(fn)
Set Sht = wb.Worksheets(1)
j = Sht.Range("C65536").End(xlUp).Row
arr数据 = wb.Worksheets(1).Range("B2:F" & j)
wb.Close False
s行 = wk汇总.Range("C65536").End(xlUp).Row
wk汇总.Range("B" & s行 + 1).Resize(j - 1, 5) = arr数据
wk汇总.Range("A" & s行 + 1).Resize(j - 1, 1) = sr
wkcount = wkcount + 1
End If
Filename = Dir
Loop
'***************************
If wkcount = 0 Then
MsgBox "指定文件夹内没有明细报表"
'Exit Sub '如果指定文件夹下没有报表,则退出
End If
End Sub
只汇总每个附件1工作簿的“附表6”中“专业1”所在的数据行的问题,已解决
关于打开工作簿出现错误提示的问题,暂不知原因。我是将你的所有附件1工作簿复制处理后,本程序才正常运行
还有一个提示,就是如果附件1的“附表6”A列没有“专业1“时,match函数会出错,导到程序中途停止运行。如果你想忽略此错误,可在程序语句的开头处,加一句 on error resume next 即出现错误,继续执行的意思
测试了下,超级好用哦,尤其那句 on error resume next ,楞是帮我把20多个文档运行完了。。。
谢谢lichuanboy44了,太感谢了!解决我的大问题了!没想到我成天复制粘贴复制粘弄得眼都快瞎了,你几行代码就可以帮我搞定了,太强了!膜拜啊!
收藏了慢慢学习,辛苦了这么快回复!加上注释后我基本能看懂了,但不知何时才能也像你们一样能写出个像样点代码来呢,感觉好难的样子
大拿们,有什么好书、好材料、好方法推荐吗?