Excel VBA 每日一场景 将总表拆分填入对应的文件夹中

今天我们的场景是工作表的拆分 当然今天的拆分并不是简单的拆分 拆分之后还需要将对应的数据写入工作薄,并且将工作簿放到对应的文件夹下 一下子好像有不少的要求,不方,我们先来看看场景

场景模拟

这是我们今天的场景模拟,有一个总表,总表里面有N个工作表

我们现在需要根据工作表的名称,来进行数据的拆分,拆分之后呢,需要将新拆分的工作表放到指定的文件夹中 听起来,是不是觉得挺复杂,又要拆分,又要新建,最头疼的还要将新建的工作薄放入指定的文件夹。

不急,我们慢慢的分析 工作表的拆分,非常的简单,遍历所有的工作表之后,就可以拆分新建了。

然后就是工作表的移动,这里我们不去做移动,因为可能要用到FSO

这个代码会比较的多 我们换个角度出发,我们现在指定的文件夹创建一个新的工作薄,然后将对应的数据填入这个工作薄

之后就可以保存了,那么这个新建的工作薄就实现了在指定的位置了,这样似乎要简单一些。

来看代码

代码区

Sub test()Dim f, sht As Worksheetf = ThisWorkbook.Path & "\拆分文件夹\"For Each sht In Worksheets If Dir(f & sht.Name) = "" Then MkDir f & sht.Name End If With Workbooks.Add .SaveAs f & sht.Name & "\" & sht.Name & ".xlsx" sht.Copy .Sheets(1) .Close True End WithNextEnd Sub

非常的简单,代码并不长,用VBA写代码,最重要的还是思路。

我们来验证下效果

从GIF中可以看出来,开始的时候,文件夹中是没有任何的文件夹,但是经过VBA的这一番操作之后,文件夹内不仅仅是创建了新的文件夹,同时也是将对应的文件夹的名称的工作表的内容也写入了,也算是成功的实现了我们的要求了。

代码解析

今天的代码其实很简单的,我们来看看

我们前面说了,想要在指定的文件夹中创建文件夹,那么先要找到指定的文件夹,如何找呢?

path代表的就是这个工作薄所在的路径

注意,这里的路径仅仅是精确到上一级的路径,后面我们还需要继续构造的

后面的拆分文件夹这几个字是我们在上面的代码中自己添加的,实际上path,仅仅取值到

留意这一点,很多小伙伴在使用这个方法的时候, 都是卡在这个路径的构造上面,大家要学会这种方法。

有了指定的路径,即指定的文件夹之后,我们就可以创建文件夹了,那么如何创建呢?

用DIR方法,创建文件夹也要有名称的,我们的名称是根据工作表的名称来决定的

那么这里我们先要去循环遍历所有的工作表,然后用工作表的名称来创建文件夹

If Dir(f & sht.Name) = "" Then MkDir f & sht.Name End If

有了这个新建的文件夹之后呢,我们就可以在这个文件夹内,创建一个新的工作薄

工作薄的创建,直接用

workbook.add

然后将它顺带进行重命名。

如何重命名 就是利用另存为的方法 workbook.SAVES

另存的同时,我们是不是可以指定路径呢?

这里我们直接用代码搞定

.SaveAs f & sht.Name & "" & sht.Name & ".xlsx"

然后将总表中对应的数据复制到这个工作薄当中就可以了。整体过程就是这样, 非常的简单

(0)

相关推荐