VBA拆分工作簿(WorkBook)
1
内容回顾
上一节,我们介绍了如何用VBA把一个超大的工作表按照某种类别拆分成独立的工作表,在实际生活中,随后的任务也许是:如何把一个个工作表另存为一个个独立的工作簿文件。
与上一节不同的是,我们不再录制宏,直接给出完成这项任务的VBA代码,然后对每一行代码进行解释。
代码实例
Sub spiltWorkbook()
Dim NewWbk As Workbook
Dim OldWbk As Workbook
Dim Sht As Worksheet
Set OldWbk = ThisWorkbook
For Each Sht In OldWbk.Worksheets
Sht.Copy
Set NewWbk = ActiveWorkbook
NewWbk.SaveAs Filename:=OldWbk.Path & "\" & Sht.Name & "_spilt.xlsx"
NewWbk.Close
Next
MsgBox "拆分工作表已完成!"
End Sub
1
代码解释
在这段代码中,我们首先定义了程序接下来需要用到的变量(NewWbk、OldWbk、Sht)。
接下来,将当前要拆分的工作簿对象赋值给对象变量(OldWbk),以后在VBA代码中需要引用该工作簿时,可以用对象变量(OldWbk)代替。由于是给对象变量赋值,所以要使用VBA关键字Set。
2
代码解释
再接着,是一个循环处理结构,对(OldWbk.Worksheets)中的每一个工作表进行处理。WorkSheet对象有一个Copy方法,该方法相当于在Excel界面中把工作表复制到一个新的WorkBook的操作,并且新的WorkBook会变成当前活动的工作簿(ThisWorkbook)。因此,在代码Set NewWbk = ActiveWorkbook中,我们把这个新的工作簿(ActiveWorkbook)赋值给WorkBook对象变量NewWbk。
3
代码解释
最后的代码,把这个含有拆分工作表的工作簿保存到与母工作簿相同的路径下,只是文件的名字是在工作表的名字后面加上"_spilt.xlsx"。关闭该工作簿,开始下一个循环。至于MsgBox "拆分工作表已完成!"这一行代码,是在操作完成后,弹出一个对话框,提示用户已完成拆分工作。
-----
-----
按照下面的步骤
试一试
说不定有惊喜呢
现在,打开一个含有多个工作表的Excel文件,按快捷键“ALT+F11”进入VBA开发环境,在左侧单击鼠标右键,选择“插入”——“模块”,在模块中输入上面的VBA代码,按F5建,查看程序执行结果。
领取专属 10元无门槛券
私享最新 技术干货