当前位置:首页 > 下载频道 > Excel > Excel > 正文

Excel VBA 7.13跨Excel 工作薄合并工作表,VBA来搭桥

     VBA杂谈  2019-05-30 18:16:18
【导读】前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是说,之前合并数据的功能,暂时无法实现跨工作薄进...

前景提要()

通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是说,之前合并数据的功能,暂时无法实现跨工作薄进行,这确实还是有一定的局限性

跨工作薄合并工作表,并且一个工作薄下面有多个工作表也是经常的事情,那么我们今天就来看看,如果每个工作薄下面有多个工作表,如何实现跨工作薄来合并数据呢?

场景模拟

我们还是用之前的例子来继续距离,假设我们现在文件夹内有N个工作薄,每个工作薄的数据字段也是相同的,属于标准数据

我现在想要做的就是合并这些工作表,将他们全部合并在一个新的工作薄的工作表中,之后就能够在一个表中对所有的数据进行分析,处理了,而不用在那么多个报表里面跳来跳去

代码区

Sub sdd()
Dim tbook As Workbook, book As Workbook, sth As Worksheet
Set tbook = ActiveWorkbook
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "请选择要汇总的工作薄所在文件夹"
If .Show = -1 Then
Filename = .SelectedItems(1)
End If
End With
k = 0
f = Dir(Filename & "\")
Do While f <> ""
Workbooks.Open Filename & "\" & f
Set book = ActiveWorkbook
For Each sth In book.Worksheets
k = k + 1
l = tbook.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
If k = 1 Then
sth.UsedRange.Copy tbook.Worksheets(1).Cells(1, 1)
Else
sth.UsedRange.Offset(1, 0).Copy tbook.Worksheets(1).Cells(l + 1, 1)
End If
Next sth
f = Dir()
ActiveWorkbook.Close False
Loop
End Sub

其实并不难,如果大家对于之前学习过的工作薄的合并还有印象的话,就会发现,其实思路是一样的,不过加多了一个循环而已。

看看效果

随机抽取其中一个姓名来看看,A1

总共有8个,那么我们看看我们是不是有8个工作薄

7+1总共8个工作薄,证明全部都成功的合并了,

再找一个每个工作薄的第三个工作表的内容看看,C1,也是8个,证明,所有的工作表的数据都已经合并好了。

代码分析

With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "请选择要汇总的工作薄所在文件夹"
If .Show = -1 Then
Filename = .SelectedItems(1)
End If
End With

简单的选择工作表的窗体代码,非常简单,我们第一系列分享的基础知识点,这里就不更多阐述了。

f = Dir(Filename & "\")
Do While f <> ""
f = Dir()
Loop

这一段大家也是非常的熟悉了,也是第一系列的基础,遍历文件夹的方法

Workbooks.Open Filename & "\" & f
Set book = ActiveWorkbook
For Each sth In book.Worksheets
k = k + 1
l = tbook.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
If k = 1 Then
sth.UsedRange.Copy tbook.Worksheets(1).Cells(1, 1)
Else
sth.UsedRange.Offset(1, 0).Copy tbook.Worksheets(1).Cells(l + 1, 1)
End If
Next sth

这里就循环的主题了,我们先拆开来看,

For Each sth In book.Worksheets
******
Next sth

这是遍历循环当前工作薄的所有工作表

看看循环内的主体

 k = k + 1
l = tbook.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
If k = 1 Then
sth.UsedRange.Copy tbook.Worksheets(1).Cells(1, 1)
Else
sth.UsedRange.Offset(1, 0).Copy tbook.Worksheets(1).Cells(l + 1, 1)

如果是第一次,就复制所有的区域含标题

第二次以及后面就不需要复制标题栏了,因为第一次已经复制了,已经存在了,再次复制的话,我们还需要再多做一步删除,更麻烦,所以第二次就直接跳过标题栏

这样就可以轻松实现我们的效果了,规则数据处理起来还是比较的简单的

=======================================================

今天和大家分享了如果多个工作薄内有多个工作表,并且数据还是规则数据,我们就可以使用VBA进行方便的合并操作了,整体思路和之前工作薄的合并的时候,是非常的类似的,增加一个循环,将每个工作薄内部所有的工作表循环一次,进行合并。并不难理解

好了~明晚19:00,准时再见。

更多有关Excel

  • excel高手常用的四个excel公式

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2018-06-03 08:41:12
  • 10个超实用Excel透视表教程,收藏学习!

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2017-03-21 09:32:15
  • 如何按时间段统计工作量?用EXCEL数据透视表呗,快速又方便

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2019-09-21 11:01:15
  • 十个Excel小技巧,专治各种不服

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2018-09-15 09:38:06
  • 如何按时间段统计工作量?用EXCEL数据透视表呗,快速又方便

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2019-09-21 11:01:15
  • 10个超实用Excel透视表教程,收藏学习!

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2017-03-21 09:32:15
  • excel高手常用的四个excel公式

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2018-06-03 08:41:12
  • excel高手常用的四个excel公式

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2018-06-03 08:41:12
  • 65个excel操作教程大全,新手很容易上手,建议收藏备用

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2019-09-17 05:15:55
  • excel高手常用的四个excel公式

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2018-06-03 08:41:12
  • 十个Excel小技巧,专治各种不服

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2018-09-15 09:38:06
  • 如何按时间段统计工作量?用EXCEL数据透视表呗,快速又方便

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2019-09-21 11:01:15
  • 如何按时间段统计工作量?用EXCEL数据透视表呗,快速又方便

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2019-09-21 11:01:15
  • 10个超实用Excel透视表教程,收藏学习!

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2017-03-21 09:32:15
  • 7个Excel求和技巧 总有几个你不会的

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2019-06-05 08:19:22
  • 系统地学习Excel第01课,Excel概述

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2019-06-05 09:26:08
  • Excel分两栏打印,你还在一个个的复制粘贴么,2个方法快速解决

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2019-06-03 01:58:03
  • Excel函数排名你多少,3个函数教你高效完成单条件、多条件排名

    前景提要()通过之前的学习,我们基本上能够应付日常工作中一些常见的工作表汇总的需求了,不过小伙伴们应该也已经注意到了,我们这些工作表的汇总都是在单个工作薄范围内进行的, 就是
    2019-06-05 09:32:39
免责申明:本栏目所发资料信息部分来自网络,仅供大家学习、交流。我们尊重原创作者和单位,支持正版。若本文侵犯了您的权益,请直接点击提交联系我们,立刻删除!
 
相关推荐
 
图文热点
 

 
 
 
联系方式 | 使用协议 | 版权隐私 | 辽ICP备11016505号-2
 
Baidu
map