惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
T
Troy Hunt's Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CXSECURITY Database RSS Feed - CXSecurity.com
小众软件
小众软件
S
Securelist
The Cloudflare Blog
博客园 - 司徒正美
D
Darknet – Hacking Tools, Hacker News & Cyber Security
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
博客园 - Franky
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Latest news
Latest news
V
Vulnerabilities – Threatpost
雷峰网
雷峰网
G
GRAHAM CLULEY
罗磊的独立博客
J
Java Code Geeks
C
Cisco Blogs
Scott Helme
Scott Helme
Spread Privacy
Spread Privacy
宝玉的分享
宝玉的分享
T
The Blog of Author Tim Ferriss
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Microsoft Azure Blog
Microsoft Azure Blog
T
Tor Project blog
GbyAI
GbyAI
C
CERT Recently Published Vulnerability Notes
A
Arctic Wolf
博客园_首页
D
DataBreaches.Net
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Stack Overflow Blog
Stack Overflow Blog
K
Kaspersky official blog
Google DeepMind News
Google DeepMind News
P
Proofpoint News Feed
aimingoo的专栏
aimingoo的专栏
SecWiki News
SecWiki News
V
Visual Studio Blog
Jina AI
Jina AI
S
Schneier on Security
T
Threat Research - Cisco Blogs
Project Zero
Project Zero
有赞技术团队
有赞技术团队
P
Privacy & Cybersecurity Law Blog
Help Net Security
Help Net Security

博客园 - 鸡毛信

改变你思维模式的书单 金字塔原理 BA的广度和深度 读书雷达 l 业务分析师(BA)篇 How to easily concatenate text based on criteria in Excel? 如何将Excel中的文本按条件合并 BA Practice Lead Handbook 1 - Why Is Business Analysis Taking The World By Storm? Making the Elephant Dance: Strategic Enterprise Analysis BABOK - 企业分析(Enterprise Analysis) BA - 读书雷达10本必读书 XMind十大最有用的功能 Excel中如何查找并列出所有链接(外部数据链接)? EXCEL 如何将多个工作表或工作簿合并到一个工作表 用Excel完成专业化数据统计、分析工作 需求 BA/PM Competency Module PPT 学习总结 PPT五大插件汇总下载 提高你30%的设计效率的PPT快捷键 PPT扁平化手册 2
在Excel里如何将多个工作簿合并到一个工作簿中
鸡毛信 · 2016-03-03 · via 博客园 - 鸡毛信

在Excel里如何将多个工作簿合并到一个工作簿中

当你必须将多个工作簿合并到一个工作簿时,你遇到过麻烦吗?最让人心烦的就是需要合并的工作簿里有很多张工作表。有人能推荐方法解决这个问题吗?

利用VBA 将多个工作簿合并到一个工作簿中 
复杂,高级用户使用

Excel 的专业用户可以使用VBA 将多个工作簿合并到一个主要的工作簿中。你可以按照如下步骤操作:

1. 将需要合并的所有工作簿都 放置在同一个目录下。如图:

2. 打开一个工作簿,其他工作簿将被合并到这个工作簿中。

3. 点击开发工具 >> Visual BasicMicrosoft Visual Basic for applications  窗口将被打开,点击插入 >> 模块,将下面的代码输入模块窗口中:

VBA:将多个工作簿合并到一个工作簿中

1

2

3

4

5

6

7

8

9

10

11

12

Sub GetSheets()

 Path = "C:\Users\dt\Desktop\dt kte\"

 Filename = Dir(Path & "*.xls")

 Do While Filename <> ""

 Workbooks.Open Filename:=Path & Filename, ReadOnly:=True

 For Each Sheet In ActiveWorkbook.Sheets

 Sheet.Copy After:=ThisWorkbook.Sheets(1)

 Next Sheet

 Workbooks(Filename).Close

 Filename = Dir()

 Loop

 End Sub

提示:在上面的代码里,你可以将目录路径更换成你自己使用的路径。

4. 然后点击  按钮运行代码,工作簿里的全部工作表(包括空白工作表)都将被合并到主工作簿里。

注意:这个VBA 代码能将整个工作簿合并到主工作簿中,但是不能 针对指定的工作表进行合并。

利用移动或复制功能将多个工作簿合并到一个工作簿中 
操作耗时

利用移动或复制功能将多个工作簿合并到一个工作簿中

如果你只是Excel 新手,除了复制每张工作表里的内容再粘贴到新工作簿和应用移动或复制功能外,也没有其他选择了。应用移动或复制功能能帮你快速地将一张或多张工作表导出或复制到新工作簿里。

1. 打开所有需要合并的工作簿。

2. 在工作表标签栏上选中一个工作簿里的全部工作表名称。按住Ctrl 键或Shift 键,你可以同时选择多个工作表。右键点击工作表名称,从右键菜单里选择移动或复制

3. 在移动或复制工作表对话框里,在将选定工作表移至工作簿下拉菜单里选择主 工作簿,其他工作簿都将被合并到这个主 工作簿中。然后指定合并工作表的位置。如图:

4.点击确定。选中的工作表都被合并到了主 工作簿里。

5. 重复2-4步,将其他工作簿移到主要的工作簿里。这样,所有打开的工作簿中 的工作表都被合并到了一个工作簿里。如图:

 http://www.extendoffice.com/documents/excel/zh-cn-excel/2805-combine-multiple-workbooks.html

实践证明,下面的代码也很有效:(http://www.excelperfect.com/index.php/2009/05/23/mergesomeworkbooks/)

Sub CombineWorkbooks()
    Dim strFileName As String
    Dim wb As Workbook
    Dim ws As Object
 
    '包含工作簿的文件夹,可根据实际修改
    Const strFileDir As String = "D:\示例\数据记录\"
 
    Application.ScreenUpdating = False
 
    Set wb = Workbooks.Add(xlWorksheet)
    strFileName = Dir(strFileDir & "*.xls*")
 
    Do While strFileName <> vbNullString
        Dim wbOrig As Workbook
        Set wbOrig = Workbooks.Open(Filename:=strFileDir & strFileName, ReadOnly:=True)
        strFileName = Left(Left(strFileName, Len(strFileName) - 4), 29)
 
        For Each ws In wbOrig.Sheets
            ws.Copy After:=wb.Sheets(wb.Sheets.Count)
            If wbOrig.Sheets.Count > 1 Then
                wb.Sheets(wb.Sheets.Count).Name = strFileName & ws.Index
            Else
                wb.Sheets(wb.Sheets.Count).Name = strFileName
            End If
        Next
 
        wbOrig.Close SaveChanges:=False
 
        strFileName = Dir
 
    Loop
 
    Application.DisplayAlerts = False
    wb.Sheets(1).Delete
    Application.DisplayAlerts = True
 
    Application.ScreenUpdating = True
 
    Set wb = Nothing
 
End Sub