如何将 Excel 中的工作表保存到单独的文件(3 种便捷方法)
方法 1 – 使用“移动或复制”命令将 Excel 工作表保存到单独的文件
步骤
- 单击要另存为单独文件的工作表选项卡/名称。
- 您可以选择多个文件来使用它们创建单独的工作簿。使用CTRL+选择来执行此操作。或者,选择第一个工作表,按住 SHIFT 键并选择最后一个工作表以选择它们之间的所有工作表。
- 右键单击工作表选项卡。选择移动或复制。
- 使用移动或复制对话框上的下拉箭头选择(新书)。
- 选中创建副本。如果不选中此选项,所选工作表将从原始工作簿中移出。
- 按确定按钮。
- 将创建一个包含所选工作表的新文件。
- 从新创建的工作簿中选择文件>>保存,将其保存到所需位置并保存为所需的文件类型。
方法 2 – 将 Excel 工作表导出到单独的 PDF/XPS 文件
步骤
- 选择要保存到单独文件的工作表。
- 选择文件>>导出>>创建PDF/XPS文档>>创建PDF/XPS。
- 浏览要保存文件的所需位置。更改文件名。使用下拉菜单选择文件类型。选择选项。
- 确保选择活动工作表单选按钮。单击确定。按发布按钮。
方法 3 – 使用 VBA 将 Excel 中的工作表保存到单独的工作簿
3.1 保存一张工作表
步骤
- 按 ALT+F11 打开 VBA 窗口。选择插入>>模块。它将创建一个空白模块。
- 复制以下代码。
Sub SaveActiveWorksheetToSeparateFile()
Dim File_Ext, Location As String
Dim File_Format As Long
Dim wsh As Worksheet
Dim wkb, Nwkb As Workbook
Application.ScreenUpdating = False
Set wkb = Application.ThisWorkbook
Set wsh = ActiveSheet
DtStr = Format(Now, "dd-mm-yyyy hh-mm-ss")
Location = wkb.Path & "\" & wkb.Name & " " & DtStr
If Val(Application.Version) < 12 Then
File_Ext = ".xls": File_Format = -4143
Else
Select Case wkb.FileFormat
Case 51:
File_Ext = ".xlsx": File_Format = 51
Case 52:
If Application.ActiveWorkbook.HasVBProject Then
File_Ext = ".xlsm": File_Format = 52
Else
File_Ext = ".xlsx": File_Format = 51
End If
Case 56:
File_Ext = ".xls": File_Format = 56
Case Else:
File_Ext = ".xlsb": File_Format = 50
End Select
End If
MkDir Location
With wsh
On Error GoTo Error
wsh.Copy
xFile = Location & "\" & wsh.Name & File_Ext
Set Nwkb = Application.Workbooks.Item(Application.Workbooks.Count)
Nwkb.SaveAs xFile, FileFormat:=File_Format
Nwkb.Close False, xFile
End With
Error:
wkb.Activate
MsgBox "The file is in " & Location
Application.ScreenUpdating = True
End Sub
- 将代码粘贴到模块中,如下所示。将光标保持在代码中。
- 按F5 运行代码。
VBA代码说明
子 SaveActiveWorksheetToSeparateFile()
我们将在本主题程序中编写代码。
将 File_Ext 变暗,将位置设为字符串
将 File_Format 变暗
将 wsh 调暗为工作表
Dim wkb、Nwkb 作为工作簿
声明必要的变量。
Application.ScreenUpdating=False
它使 VBA 在后台工作。因此,VBA 运行速度更快。
设置wkb=Application.ThisWorkbook
设置 wsh=ActiveSheet
DtStr=格式(现在,“dd-mm-yyyy hh-mm-ss”)
位置=wkb.Path & “\” & wkb.Name & ” ” & DtStr
它为变量设置值。
如果 Val(应用程序.版本) < 12 则
File_Ext=“.xls”: File_Format=-4143
其他
选择案例wkb.FileFormat
案例51:
File_Ext =“.xlsx”:File_Format=51
案例52:
如果Application.ActiveWorkbook.HasVBProject那么
File_Ext =“.xlsm”:File_Format=52
其他
File_Ext =“.xlsx”:File_Format=51
结束如果
案例56:
File_Ext =“.xls”:File_Format=56
其他情况:
File_Ext =“.xlsb”:File_Format=50
结束选择
结束如果
识别原始工作簿的文件格式。
MkDir 位置
创建一个新文件夹。
使用 wsh
适用于活动工作表。
出错时转到错误
如果出现错误,请转到所引用的语句。
wsh.Copy
复制活动工作表。
xFile=位置 & “\” & wsh.Name & File_Ext
设置Nwkb=Application.Workbooks.Item(Application.Workbooks.Count)
Nwkb.SaveAs xFile, FileFormat:=File_Format
Nwkb.Close False,xFile
创建新文件,然后保存并关闭它。
结束
停止使用工作表。
错误:
如果活动工作表发生任何错误,代码将从此处运行。
wkb.Activate
原始工作簿被激活。
MsgBox“文件位于”和位置
消息框显示新创建的文件的位置。
Application.ScreenUpdating=True
屏幕更新设置为默认值。
结束子
主体流程到此结束。
3.2 保存所有工作表
使用以下代码将所有工作表保存到 Excel 中的单独文件中。
Sub SaveAllWorksheetsToSeparateFiles()
Dim File_Ext, Location As String
Dim File_Format As Long
Dim wsh As Worksheet
Dim wkb, Nwkb As Workbook
Application.ScreenUpdating = False
Set wkb = Application.ThisWorkbook
DtStr = Format(Now, "dd-mm-yyyy hh-mm-ss")
Location = wkb.Path & "\" & wkb.Name & " " & DtStr
If Val(Application.Version) < 12 Then
File_Ext = ".xls": File_Format = -4143
Else
Select Case wkb.FileFormat
Case 51:
File_Ext = ".xlsx": File_Format = 51
Case 52:
If Application.ActiveWorkbook.HasVBProject Then
File_Ext = ".xlsm": File_Format = 52
Else
File_Ext = ".xlsx": File_Format = 51
End If
Case 56:
File_Ext = ".xls": File_Format = 56
Case Else:
File_Ext = ".xlsb": File_Format = 50
End Select
End If
MkDir Location
For Each wsh In wkb.Worksheets
On Error GoTo Error
If wsh.Visible = xlSheetVisible Then
wsh.Select
wsh.Copy
xFile = Location & "\" & wsh.Name & File_Ext
Set Nwkb = Application.Workbooks.Item(Application.Workbooks.Count)
Nwkb.SaveAs xFile, FileFormat:=File_Format
Nwkb.Close False, xFile
End If
Error:
wkb.Activate
Next
MsgBox "The files are in " & Location
Application.ScreenUpdating = True
End Sub
要记住的事情
- 您必须在第一种方法中选中创建副本复选框。如果未选中,所选工作表将从原始工作簿中移出。
- VBA 代码将文件保存在与原始工作簿位于同一位置的新文件夹中。