标签:VBA
有时候,我们想将工作簿中的每个工作表都保存为一个单独的工作簿。
你可以使用下面的操作逐个保存工作表:
1.在工作表标签中单击右键。
2.选取“移动或复制…”命令。
3.选择“(新工作簿)”。
4.保存该工作簿。
图1
这样,有多少工作表,你就要操作上面的步骤多少次。
然而,如果存在很多个工作簿,这样的重复工作使用VBA是最合适的。下面是代码:
代码语言:javascript复制Sub SaveWorksheetsToWorkbook()
Dim wks As Worksheet
Dim strPath As String
Dim strFileName As String
Dim strExtension As String
Dim lngFileFormatCode As Long
Dim arr
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName =Application.DefaultFilePath & ""
.Title = "选择保存工作表的位置"
.Show
If .SelectedItems.Count = 0 Then
MsgBox "取消"
Exit Sub
Else
strPath = .SelectedItems(1) &""
End If
End With
arr = Split(ThisWorkbook.FullName,".")
strExtension = arr(UBound(arr))
Select Case strExtension
Case "xlsb":lngFileFormatCode = 50
Case "xlsx":lngFileFormatCode = 51
Case "xlsm":lngFileFormatCode = 52
Case "xls": lngFileFormatCode= 56
End Select
For Each wks In Worksheets
strFileName = strPath & wks.Name& "." & strExtension
wks.Copy
ActiveWorkbook.SaveAsFilename:=strFileName, FileFormat:=lngFileFormatCode
ActiveWorkbook.Close
Next wks
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
只需在要拆分的工作簿中运行上述代码,就可将该工作簿中的所有工作表全部保存为单独的工作簿。
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。