Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3449|回复: 18

excel如何快速把31个工作表信息合并到一个Sheet中

[复制链接]
发表于 2015-8-18 16:25 | 显示全部楼层 |阅读模式
自己的EXCEL技能比较一般,这个功能要通过宏才能实现. 而我对宏一窍不通,不好意思

我希望在Total Data里能够把SHEET1 到SHEET 31(共31天,因为文件太大不能上传我删除了半个月的数据) 的信息全部显示数来.

需要的信息是从行3开始到没有数据显示.

列是从A到M.

希望哪位大师可以帮忙, 非常感谢啊{:091:}

ONEC & CWSE Schedule - 2015.06.rar

337.77 KB, 下载次数: 16

感谢

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-8-18 16:47 | 显示全部楼层
供参考
  1. Sub XXX()
  2. Dim Sht As Worksheet, Cnn
  3. Set Cnn = CreateObject("adodb.connection")
  4. Cnn.Open "provider=microsoft.ace.oledb.12.0;extended properties='excel 12.0;HDR=YES';data source=" & ActiveWorkbook.FullName
  5. Sheets("Total Data").Cells.Clear
  6. Sheets("1").[A3:M3].Copy Sheets("Total Data").[a3]
  7. For Each Sht In Sheets
  8.      If Sht.Name <> ActiveSheet.Name Then
  9.           ActiveSheet.Cells(Rows.Count, 1).End(3).Offset(1).CopyFromRecordset Cnn.Execute("select * from [" & Sht.Name & "$A3:M]")
  10.      End If
  11. Next
  12. [B:B].NumberFormatLocal = "YYYY-M-D"
  13. End Sub
复制代码

ONEC &amp; CWSE Schedule - 2015.06.rar

414.71 KB, 下载次数: 11

回复

使用道具 举报

 楼主| 发表于 2015-8-18 17:11 | 显示全部楼层
gufengaoyue 发表于 2015-8-18 16:47
供参考

你给我的附件我打不开,不是EXCEL格式啊 ? 能麻烦再发一次吗?
回复

使用道具 举报

发表于 2015-8-18 17:21 | 显示全部楼层
crystalgold 发表于 2015-8-18 17:11
你给我的附件我打不开,不是EXCEL格式啊 ? 能麻烦再发一次吗?

不会吧。我的能打开的。好像没问题。
你再试试吧。

ONEC CWSE Schedule - 2015.06.rar

414.71 KB, 下载次数: 16

回复

使用道具 举报

 楼主| 发表于 2015-8-18 18:01 | 显示全部楼层
gufengaoyue 发表于 2015-8-18 17:21
不会吧。我的能打开的。好像没问题。
你再试试吧。

他报错, 可能是我用OFFICE 2013吧. 我在打开看看

我自己放的时候,他报错.

ActiveSheet.Cells(Rows.Count, 1).End(3).Offset(1).CopyFromRecordset Cnn.Execute("select * from [" & Sht.Name & "$A3:J]")
回复

使用道具 举报

 楼主| 发表于 2015-8-18 18:04 | 显示全部楼层
gufengaoyue 发表于 2015-8-18 17:21
不会吧。我的能打开的。好像没问题。
你再试试吧。

我可以打开了,谢谢
回复

使用道具 举报

 楼主| 发表于 2015-8-18 18:19 | 显示全部楼层
gufengaoyue 发表于 2015-8-18 17:21
不会吧。我的能打开的。好像没问题。
你再试试吧。

大师,能否指点一下,因为表格里不止31个SHEET. 能否代码改成1到31的啊?
回复

使用道具 举报

发表于 2015-8-18 18:22 | 显示全部楼层
不用改,就这样,除了 Total Data 这个表,其它的都会放进去,再来100个表都可以。
回复

使用道具 举报

 楼主| 发表于 2015-8-18 18:29 | 显示全部楼层
gufengaoyue 发表于 2015-8-18 18:22
不用改,就这样,除了 Total Data 这个表,其它的都会放进去,再来100个表都可以。

这个我知道,因为后面的也放进去了,但是我只要31个表 {:301:} 这个VBA是一窍不通啊
回复

使用道具 举报

发表于 2015-8-18 18:47 | 显示全部楼层
  1. Sub XXX()
  2. Dim Sht As Worksheet, Cnn
  3. Set Cnn = CreateObject("adodb.connection")
  4. Cnn.Open "provider=microsoft.ace.oledb.12.0;extended properties='excel 12.0;HDR=YES';data source=" & ActiveWorkbook.FullName
  5. Sheets("Total Data").Cells.Clear
  6. Sheets("1").[A3:M3].Copy Sheets("Total Data").[a3]
  7. For Each Sht In Sheets
  8.      If Sht.Name <> ActiveSheet.Name and val(sht.name)>=1 and val(sht.name)<=31 Then
  9.           ActiveSheet.Cells(Rows.Count, 1).End(3).Offset(1).CopyFromRecordset Cnn.Execute("select * from [" & Sht.Name & "$A3:M]")
  10.      End If
  11. Next
  12. [B:B].NumberFormatLocal = "YYYY-M-D"
  13. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 08:35 , Processed in 0.340787 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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