方法 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 代码将文件保存在与原始工作簿位于同一位置的新文件夹中。