前景提要
前面我们分享了如何批量创建工作薄的方法,有了工作薄之后,我们自然是要针对工作薄进行操作了,日常工作中常用的工作薄的操作就是合并多个工作薄的内容,很多童鞋都觉得这一块的操作非常的困难,也非常的难实现,其实并不难,今天开始,小编将会带着各位童鞋一起来学习下如何实现多个工作薄的汇总的操作的,之前有童鞋私下说一次性的灌输太多的东西,不太好消化,希望小编能够分开来讲解,为了能够让大家详细的了解每一步的操作,我们将会分开几节来讲,方便大家理解。
场景模拟
昨天我们模拟的场景是,将一个工作薄的内容拆分到多个独立的工作薄中去,今天我们逆着来,将多个独立的工作薄,汇总合并成为一个新的工作薄,前面我们也说了,为了能够让大家理解每个步骤的过程中,我们将每一步骤拆开来将,今天我们主要讲一个外部框架,如果批量打开当前的每一个工作薄
方法分析
说到打开,大家肯定会想到open方法了,没错想要打开工作薄,我们需要使用workbook的open方法,那么打开什么文件呢?肯定是除去当前文件夹的所有文件咯,既然是当前文件夹,那么你应该知道用什么方法咯,dir遍历循环,这是我们在之前第一序列中分享过的知识点了,看吧,之前分享的基础知识还是会用到的,来看看实例
代码区
这是我们上一节分享拆分的数据,本节我们来继续使用,前面我们已经说了,想要合并多个工作薄,你首先要打开工作薄,所以我们现在来看看如何打开工作薄
Sub test()
Dim pathn
pathn = ThisWorkbook.Path
f = Dir(pathn & "\")
Do While f <> ""
If f <> "test.xlsm" Then
Workbooks.Open (pathn & "\" & f)
End If
f = Dir()
Loop
End Sub
来看看效果,所有的工作薄文件都已经被打开了,等待我们下一步的操作
是不是非常的完美
代码分析
pathn = ThisWorkbook.Path
此处的目的是获得当前文件夹的位置,即路径,上节我们已经说过这个方法了。
然后就是前面学习过的dir的方法的使用了,这里我们就不多说了,我调试一下,大家看看效果就知道了。
就是这样一步一步的往下循环,遍历打开,如果在这个过程中正好碰到我们这个测试工作薄,会选择跳过的,如果没有这句话,虽然不会报错,但是程序会中断,并且导致数据丢失,这并不是我们想要的效果,所以这里一定要加一个判断
Workbooks.Open (pathn & "\" & f)
Workbooks.Open就是打开工作薄的意思,参数我们只需要提供一个,就是路径,路径我们可以用之前得到的pathn加上我们通过dir遍历得到的文件名称合并起来得到一个完整的路径。