excel快速将每个工作表另存为单独的工作簿文件

 时间:2024-10-14 18:35:33

在实际工作中,有时需要将一个工作簿中的每个工作表都另存为单独的工作簿以方便发给不同的人。本例介绍如何用VBA代码快速完成该过程。

工具/原料

Excel

操作过程:

1、首先看一下原始数据表,在这个工作簿中每个工作表分别存储了一个人的数据。现在需要将每个人的工作表单独存成excel工作簿文件。

excel快速将每个工作表另存为单独的工作簿文件

2、首先,按键盘上的Alt+F11进入VBA代码编辑界面。

excel快速将每个工作表另存为单独的工作簿文件

3、根据图示,在工作簿中插入一个模块。

excel快速将每个工作表另存为单独的工作簿文件
excel快速将每个工作表另存为单独的工作簿文件

4、在模块内粘贴下述代码:Sub SaveAs() On Error Resume 鲍伊酷雪Next Dim FolderPath As String, Folder绿覆冗猩Name As String, BN As String Dim ReturnValue As Integer BN = ActiveWorkbook.Name FolderPath = ThisWorkbook.Path FolderName = Mid(BN, 1, InStrRev(BN, ".", Len(BN)) - 1) Dim MyFile As Object Set MyFile = CreateObject("Scripting.FileSystemObject") If MyFile.folderexists(FolderPath & "\" & FolderName & "-Saved") Then ReturnValue = MsgBox("文件夹已存在,是否更新内容?", vbOKCancel, "Caution!") If ReturnValue = 2 Then Exit Sub Else MyFile.CreateFolder (FolderPath & "\" & FolderName & "-Saved") Set MyFile = Nothing End If Application.ScreenUpdating = False Application.DisplayAlerts = False Dim i As Integer For i = 1 To Sheets.Count Set Wk = Workbooks.Add Workbooks(BN).Sheets(i).Copy before:=Wk.Worksheets("Sheet1") Wk.SaveAs FolderPath & "\" & FolderName & "-Saved\" & ThisWorkbook.Sheets(i).Name Wk.Close Next i Application.DisplayAlerts = True Application.ScreenUpdating = TrueEnd Sub

excel快速将每个工作表另存为单独的工作簿文件

5、如下图示例,插入一个按钮并指定按钮至刚才插入的宏代码。

excel快速将每个工作表另存为单独的工作簿文件
excel快速将每个工作表另存为单独的工作簿文件

6、点击刚才插入的按钮,运行完毕后可以看到在同目录下出现了一个名称为“拆分工作表-Saved”文件夹,打开文件夹可以看到被拆分出来的若干个工作表。

excel快速将每个工作表另存为单独的工作簿文件
excel快速将每个工作表另存为单独的工作簿文件
excel快速将每个工作表另存为单独的工作簿文件

7、如果已经运行过一次拆分过程生成了上述文竭惮蚕斗件夹和文件,更改源文件内容后再次点击按钮时会提示是否更新原来生成的文件,如果点击【确定】则更新文件夹内的文件。

excel快速将每个工作表另存为单独的工作簿文件
excel快速将每个工作表另存为单独的工作簿文件
excel快速将每个工作表另存为单独的工作簿文件
  • 为什么在excel中输入的数字加括号就成负数了
  • WPS行号间隔最小值怎么设置
  • 如何使用excel转置,列数据自动变行数据
  • 在excel下如何拆分工作表,并调整大小?
  • Excel如何批量修改一列单元格属性
  • 热门搜索
    新学期手抄报 爱国主义教育手抄报 关于安全手抄报 语文手抄报图片 关于母爱的手抄报 新春手抄报 万圣节手抄报 中国梦的手抄报 端午节的手抄报图片 国庆节手抄报简单好看