第037篇:VBA之拆分工作簿(将一个包含多工作表的工作簿拆分为单工作表工作簿文件)


这个功能,属于我的VBA入坑操作。由于该篇属于实操性较强的内容,为了让小白都能上手用,我这里放一点VBA的基础操作。

使用情景:如题,将一个包含多工作表的工作簿拆分为单工作表工作簿文件

原始文件描述:【旺旺大礼包.xlsx】中有三个工作表,分别是旺仔牛奶、旺旺仙贝、旺旺小小酥

操作流程:

打开旺旺大礼包.xlsx——在菜单栏的开发工具中找到Visual Basic入口——进入到VBE界面并确认代码窗口已打开

输入代码:

备注:该段代码已经测试,粘贴走之后唯一需要手动更改的地方就是标红的这个原始工作簿名称

Sub 拆分工作簿到当前路径()

Dim wk As Workbook, ss$, k% '声明变量

Application.DisplayAlerts = False '将运行时弹出的对话框屏蔽掉

For Each sht In Workbooks("旺旺大礼包").Sheets '首先循环当前工作簿下的sheets集合,此处共3个

Set wk = Workbooks.Add '新建一个工作簿,并且这个工作簿赋值给变量wk

k = k + 1 'k的作用在下一句就能看明白

Workbooks(1).Sheets(k).Copy Workbooks(2).Sheets(1)

'前面完成了新建工作簿,现有两个工作簿,原有的为Workbooks(1),新建的为Workbooks(2),这句代码的含义是将当前工作簿下面的工作表Sheet(k)复制到新建工作簿的Sheet(1)前面

ss = ThisWorkbook.Path & "\" & sht.Name & ".xlsx" '给ss变量赋值为当前工作簿的路径+取出来的文件名

wk.SaveAs ss '保存wk工作簿

wk.close '关闭wk工作簿

Next

Application.DisplayAlerts = True '解除前面的屏蔽

MsgBox "旺旺大礼包拆分已完成!"

End Sub

点击运行按钮执行代码后的效果如下:(1)弹窗提示已完成拆分;(2)到路径下确认已完成拆分。