一个工作簿中往往会有多个工作表,比如,同一个年级的多个班的成绩存放在一个工作簿的不同的工作表里,通过多个工作表实现对同一组数据进行分类管理。
那么如何把同一个工作簿里的每个工作表生成为一个独立的工作簿文件,分放到相应的班级里呢?
如此案例中,九年级8个班的成绩分别存放在了8个工作表里,我们要以这8个工作表的表名为文件名,分拆成8个工作簿文件,每个工作簿中存放一个班的成绩。
我们使用Excel的VBA程序语言,编写简单,瞬间即可完成多个工作表生成多个工作簿文件。
1、 建立工作簿文件存放文件夹
在计算机D盘创建一个空文件夹"chengjibiao",用于存放生成的多个工作簿文件。
2、 启动VBA语言编辑窗口。
选择"开发工具"菜单,单击"Visual Basic"命令按钮,打开"VBA编辑窗口"。
在VBA编辑窗口中的"工程"栏下任意打开鼠标右键快捷菜单,依次选择单击"插入"——"模块"菜单命令,进入到VBA编辑状态。
3、 编辑VBA程序语言语句
Sub fczgb()'分拆工作表Dim sht As WorksheetFor Each sht In Sheetssht.CopyActiveWorkbook.SaveAs Filename:="d:chengjibiao" & sht.Name & ".xlsx"ActiveWorkbook.CloseNextEnd Sub
4、 单击VBA编辑窗口的"运行"命令,瞬间原来的8个工作表生成为8个以原来的工作表名字为文件名的工作簿。每个工作簿中分别存放着每个班级的成绩。
5、 VBA程序语句的理解
(1)Sub
End sub
先VBA程序语句的框架。
(2)dim sht as worksheet
For each sht in sheets
next
为变量"sht"定义为"Worksheet"类型,并设定为在所有工作表(Sheets)中进行循环。
For与Next语句成对配合使用。
(3)sht.Copy
对工作表(sht)进行复制操作
(4) ActiveWorkbook.SaveAs Filename:="d:chengjibiao" & sht.Name & ".xlsx"
把刚刚复制产生的工作簿进行"另存为"(SaveAs)操作,保存位置是"d:chengjibiao",文件名是原工作表的表名(sht.Name).xlsx
(5)ActiveWorkbook.Close
关闭当前工作簿,进行下一轮循环操作,直到完成对所有工作表进行复制、重命名、保存操作。