excel中使用vba快速将多个工作表存为单个文件
的有关信息介绍如下:excel中使用vba快速将多个工作表存为单个文件
首先我们打开一个工作样表作为例子。
我们使用alt+f11组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码:Sub 每个工作表另存为单独的工作簿()
Sub ade()
Dim sht As Worksheet
ipath = ThisWorkbook.Path & "\"
For Each sht In Sheets
sht.Copy
ActiveWorkbook.SaveAs ipath & sht.Name & ".xls"
ActiveWorkbook.Close
Nex
End Sub
我们设置一个保存文件的路径为当前工作薄的路径,path属性后连接斜杠为文件路径分隔符。
使用for each循环,将sht变量历遍本工作薄的所有工作表。这里需要做一个sht.copy操作复制本标签的工作表。没有指定after或者before参数,所以excel会新建一个工作表来保存该标签工作表。
然后使用saveas方法将该工作表保存为该标签工作表的名称并保存为单个的工作薄文件。记住文件名并不包含有后缀名,所以我们需要手动添加后缀名来关联excel程序。
这里可以添加一条禁止屏幕更新的语句,Application.ScreenUpdating = False这样可以提升vba的运行效率。但是为了显示宏的运行过程,所以我没有添加。