excel怎样用VBA的方式实现文档所在文件夹下的文件内容汇总

我每个月要发送一个空白文档给各个部门,各个部门将自己部门的加班信息返回给我,我再根据每个部门的信息汇总到一个excel表格中,之后统计整个公司的加班信息。步骤:先逐个打开01 - 06文档,并将里面信息逐条誊录到《加班预估汇总表》中,繁琐还容易看错行,容易出错。求网上大神,能否给写个VBA程式一键完成。我略有一点VBA基础,能看懂但不会写代码,最好将代码注释给我就感激不尽了。
或者我可以将01-06表格sheet移动复制到《加班预估汇总表》中,再用VBA程式实现。
我实在不会表达
Dim myname as string
Dim mypath as string
mypath =thsiworkbook.pathmyname=dir(mypath & "\*.slx") 还有新版本(.slsx)select range("A65536").end(xlup).row to 《加班预估汇总表》vlookup 吧啦吧啦
MsgBox"誊录成功”
求大神指点迷津,感激不尽!

第1个回答  2019-02-22

戳我头像,一切都会有的。 所得取决于所付出的。

大家都很忙的,别说帮忙,越帮越忙。

上文件,最好上两个部门的,和结果。

Sub 同文件夹下所有文件()
Set R = CreateObject("Scripting.FileSystemObject").GetFolder("X:\我的照片\Camera")  '可以改成你的路径
 For Each F In R.Files
  Debug.Print F.Name
  '这里放你的宏,f.name 就是依次的文件名
 Next
End Sub

Sub 同文件夹下所有文件汇总()
Dim wjj As String
Dim DirName As String
Dim name1 As String
If ActiveWorkbook.Path = "X:\excel" Then Exit Sub '自我保护。
Application.ScreenUpdating = False
For j = 1 To 3 '根据表数
 Worksheets(j).Cells.Clear
Next j
wjj = ActiveWorkbook.Path
name1 = ActiveWorkbook.Name
DirName = Dir(wjj & "\*.xls")
Do While DirName <> ""
 If DirName <> name1 Then
  Workbooks.Open Filename:=wjj & "\" & DirName
  Workbooks(name1).Activate
  For i = 1 To 3  '根据表数
   Sheets(i).Range("a65536").End(xlUp).Offset(1, 0).Offset(0, 1) = DirName
   Workbooks(DirName).Sheets(i).Range("A4:J2000").Copy _
     Sheets(i).Range("a65536").End(xlUp).Offset(2, 0)
  Next
  Workbooks(DirName).Close False
 End If
 DirName = Dir
Loop
Application.ScreenUpdating = True
End Sub

仅供参考。

第2个回答  2019-02-19
看你表格的内容,就是数值相加汇总
所以依你所说的情况:
1:把各单位报上来的加班表移动到一个汇总表中(副本)然后在汇总表中用公式。这要求每次报上来的文件名名称必须一样(当然也可以不管文件名汇总某目录下的全部XLS文件),文件中的工作表名也要保持一致,这样才方便处理。
2:汇总表中设置公式。可以由VBA脚本自动加入。因为这个表汇总公式简单。sum(部门1!E2:部门N!E2),下拉填充。本回答被网友采纳
第3个回答  2019-02-19
这个VBA可以解决,但是你不熟悉代码,建议在Excel中使用powerquery进行多工作簿的汇总查询,需保证你分发出去的表格是相同的格式,字段也都相同,操作并不复杂。请给我你的文件。
第4个回答  2019-02-19
让vba把文件夹中的xls文件合并到一个工作表中即可。
第5个回答  2019-02-19
我倒是会写追问

那倒是帮忙呀~~~
赠人玫瑰,手有余香。

相似回答