把Excel工作簿的每个工作表提取出来保存为新工作簿

时间:2024-02-24 18:25:18

平台:MS office 2010

任务:有个excel工作簿,其中有上百个工作表,要求把每一个工作表全部保存为新工作簿,如果一个一个复制出来太傻了,可以用excel自带的VB解决。

方法:打开工作簿,在工作表上点右键,选择“查看代码”,打开Microsoft Visual Basic for Application对话框,在菜单栏,单击“插入”—“模块”。在模块对话框中输入如下代码:

Private Sub hjs()

  Dim sht As Worksheet

  Dim ThisBook As Workbook

  Set ThisBook = ActiveWorkbook

  For Each sht In ThisBook.Sheets

    sht.Copy

    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & sht.Name & ".xlsx"

    ActiveWorkbook.Close

  Next

  MsgBox "分拆完毕"

End Sub

单击“保存”按钮,选择“否”,打开“另存为”对话框,选择保存位置(因为将提取出来的文件太多,最好保存在一个新文件夹里。),输入保存文件名,将保存类型选择为“Excel启用宏的工作簿(*.xlsm)”,单击“保存”。

在Microsoft Visual Basic for Application对话框单击工具栏上的运行按钮,excel将自动提取各个工作表为单一工作簿。