Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 9890b

[已解决]以下代码只能统计一个工作表,我要统计所有表,怎么修改

[复制链接]
发表于 2013-12-13 11:15 | 显示全部楼层
我感觉这样更符合你的要求。
  1. Sub 汇总()
  2.     Dim strFileName As String, xlApp, xlBook, xlSheet
  3.     Dim i As Integer, arr, temp(1 To 28, 1 To 10), j As Integer, k As Integer
  4.     strFileName = Dir(ActiveWorkbook.Path & "")
  5.     i = 1
  6.     Set xlApp = CreateObject("Excel.Application")
  7.     Application.ScreenUpdating = False
  8.     Do While strFileName <> ""
  9.         If strFileName <> ThisWorkbook.Name And InStr(strFileName, ".xls") > 0 Then
  10.             Set xlBook = xlApp.Workbooks.Open(ActiveWorkbook.Path & "" & strFileName)
  11.             For Each xlSheet In xlBook.Worksheets
  12.                 arr = xlSheet.Range("d6:m33")
  13.                 For j = 1 To 28
  14.                     For k = 1 To 10
  15.                         temp(j, k) = temp(j, k) + arr(j, k)
  16.                     Next
  17.                 Next
  18.             Next
  19.             xlApp.DisplayAlerts = False
  20.             xlBook.Close
  21.             Sheets(i).Range("d6:m33") = temp
  22.             i = i + 1
  23.         End If
  24.         strFileName = Dir
  25.     Loop
  26.     xlApp.Quit
  27.     Sheets(1).Range("d6:m33") = temp
  28.     Application.ScreenUpdating = True
  29. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2013-12-13 11:16 | 显示全部楼层
  1. Sub 汇总()
  2.     Dim strFileName As String, xlApp, xlBook, xlSheet
  3.     Dim i As Integer, arr, temp(1 To 28, 1 To 10), j As Integer, k As Integer
  4.     strFileName = Dir(ActiveWorkbook.Path & "")
  5.     i = 1
  6.     Set xlApp = CreateObject("Excel.Application")
  7.     Application.ScreenUpdating = False
  8.     Do While strFileName <> ""
  9.         If strFileName <> ThisWorkbook.Name And InStr(strFileName, ".xls") > 0 Then
  10.             Set xlBook = xlApp.Workbooks.Open(ActiveWorkbook.Path & "" & strFileName)
  11.             For Each xlSheet In xlBook.Worksheets
  12.                 arr = xlSheet.Range("d6:m33")
  13.                 For j = 1 To 28
  14.                     For k = 1 To 10
  15.                         temp(j, k) = temp(j, k) + arr(j, k)
  16.                     Next
  17.                 Next
  18.             Next
  19.             xlApp.DisplayAlerts = False
  20.             xlBook.Close
  21.             With Sheets(i)
  22.                 .Range("d6:m33") = temp
  23.                 .Range("d2").Value = Split(strFileName, ".")(0)
  24.             End With
  25.             i = i + 1
  26.         End If
  27.         strFileName = Dir
  28.     Loop
  29.     xlApp.Quit
  30.     Sheets(1).Range("d6:m33") = temp
  31.     Application.ScreenUpdating = True
  32. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-12-13 11:45 | 显示全部楼层
hwc2ycy 发表于 2013-12-13 11:12
另外,你不是每个工作簿的所有工作表汇总成一个工作表?
我看你的BOOKS1里有三个工作表。

汇成三个表,
回复

使用道具 举报

 楼主| 发表于 2013-12-13 11:48 | 显示全部楼层
9890b 发表于 2013-12-13 11:45
汇成三个表,

三个表的数据应该是一样的呀,好像数据不是一样的
回复

使用道具 举报

 楼主| 发表于 2013-12-13 12:20 | 显示全部楼层
9890b 发表于 2013-12-13 11:48
三个表的数据应该是一样的呀,好像数据不是一样的

book1工作簿的工作表1或是工作表3或更多合计应该是其他三个工作簿(或更多)对应工作表累加的数。

工作簿
工作表
工作表
工作表
中学
1
2
3
 
中心校
1
2
3
 
茶园完小
1
2
3
 
等于
等于
等于
book1
1
2
3

回复

使用道具 举报

发表于 2013-12-13 12:27 | 显示全部楼层
9890b 发表于 2013-12-13 12:20
book1工作簿的工作表1或是工作表3或更多合计应该是其他三个工作簿(或更多)对应工作表累加的数。

早要说明白嘛,绕一大圈。


回复

使用道具 举报

 楼主| 发表于 2013-12-13 12:31 | 显示全部楼层
9890b 发表于 2013-12-13 12:20
book1工作簿的工作表1或是工作表3或更多合计应该是其他三个工作簿(或更多)对应工作表累加的数。

我运行了你的代码,第一个工作表变成了9个工作簿相加,第二个表变成了6个工作簿相加,第三个工作表变成了9个工作簿相相,我的要求是有几个工作簿就是几个工作簿相加。
回复

使用道具 举报

 楼主| 发表于 2013-12-13 12:31 | 显示全部楼层
hwc2ycy 发表于 2013-12-13 12:27
早要说明白嘛,绕一大圈。

我运行了你的代码,第一个工作表变成了9个工作簿相加,第二个表变成了6个工作簿相加,第三个工作表变成了9个工作簿相相,我的要求是有几个工作簿就是几个工作簿相加。
回复

使用道具 举报

 楼主| 发表于 2013-12-13 12:32 | 显示全部楼层
9890b 发表于 2013-12-13 12:31
我运行了你的代码,第一个工作表变成了9个工作簿相加,第二个表变成了6个工作簿相加,第三个工作表变成了 ...

不好意思呀,辛苦了
回复

使用道具 举报

 楼主| 发表于 2013-12-13 12:32 | 显示全部楼层
9890b 发表于 2013-12-13 12:31
我运行了你的代码,第一个工作表变成了9个工作簿相加,第二个表变成了6个工作簿相加,第三个工作表变成了 ...

不好意思,辛苦了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-9 10:09 , Processed in 0.409963 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表