首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VBA拆分工作簿

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建,查看程序执行结果。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190811A07U1M00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券