楼主: yyj38128902
2366 8

[问答] excel求助 [推广有奖]

  • 0关注
  • 1粉丝

已卖:140份资源

博士生

74%

还不是VIP/贵宾

-

威望
0
论坛币
58364 个
通用积分
54.5079
学术水平
10 点
热心指数
10 点
信用等级
10 点
经验
1465 点
帖子
165
精华
0
在线时间
484 小时
注册时间
2008-7-26
最后登录
2025-6-27

楼主
yyj38128902 发表于 2011-3-16 10:22:51 |AI写论文
100论坛币
1、如何将50个excel文件合并成一个excel文件的50个工作簿
2、如何编写宏,能在这50个工作簿中循环,做同样的操作
3、如果数据量很大,excel操作起来很慢,建议用什么别的软件或方法

诚心求助!感激不尽……

最佳答案

coral033 查看完整内容

http://www.pinggu.org/bbs/thread-419175-1-1.html 如何用VBA函数合并多个文件 Sub CombineWorkbooks() Dim FilesToOpen Dim x As Integer On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename(FileFilter: = "MicroSoft Excel文件(*.xls),*.xls",MultiSelect: = True,Title: = "要合并的文件") If TypeName(FilesToOpen) = "Boole ...
关键词:excel求助 EXCEL exce xcel cel 求助 EXCEL

沙发
coral033 在职认证  发表于 2011-3-16 10:22:52
http://www.pinggu.org/bbs/thread-419175-1-1.html

如何用VBA函数合并多个文件
Sub CombineWorkbooks()
    Dim FilesToOpen
    Dim x As Integer

    On Error GoTo ErrHandler
    Application.ScreenUpdating = False

    FilesToOpen = Application.GetOpenFilename(FileFilter: = "MicroSoft Excel文件(*.xls),*.xls",MultiSelect: = True,Title: = "要合并的文件")

    If TypeName(FilesToOpen) = "Boolean" then
        MsgBox "没有选中文件"
        Goto ExitHandler
    end if

    x = 1
    While x <= UBound(filestoopen)
        Workbooks.Open fileName: = filestoopen(x)
        Sheets().Move After: = ThisWorkbook.Sheets (ThisWorkbook.Sheets.Count)
        x = x + 1
    Wend
ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
End Sub

根据文件类型,xls,csv等均可。需要先建立一个xls文件,在宏代码里面,运行上述代码,得到结果。

sheet 1----view code(查看代码),将上述代码COPY到打开的新窗口中,
Out of difficulties, makes miracles.

藤椅
solensolen 发表于 2011-3-16 10:32:38
直接用EXCEL VBA写程序处理,就你的要求而言这程序很简单。

板凳
yyj38128902 发表于 2011-3-16 21:35:27
3# coral033

非常感谢版主的程序,这样确实可以把很多excel合到一个里了,
我还有一个小小的问题,就是怎么设置一下,可以在这些文件被读进来时重命名为sheet1——sheetn
因为原来的名字不规则,没有办法在多个sheet里循环了

报纸
yyj38128902 发表于 2011-3-17 09:50:04
3# coral033
请斑竹帮帮忙吧

地板
注册吧 发表于 2011-3-19 18:41:16
saveas filename:="路径" & "sheet" & i
纸上得来终觉浅,绝知此生要躬行

7
yyj38128902 发表于 2011-3-26 23:21:35
6# 注册吧
弱问:这句代码要加到哪里呢

8
fanyuetao1987 发表于 2011-4-6 14:44:03
没有必要让文件名统一
dim sh as worksheet
for each sh in worksheets
next

for i = 1 to worksheets.count
worksheets(i).activate
next

这两个都可以实现遍历工作表,与你的sheet名没啥关系

9
matlab-007 发表于 2016-6-29 18:18:02
将所有的工作簿打开,然后右键点击想要复制的工作表,就有个选项‘移动或复制工作表’,选择后会出现个对话框,选择下拉三角形就可以将你想要的表格复制到所希望的工作簿里了。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 13:00