Sub SplitWorksheets()
Dim CurrentWorkbook As Workbook
Dim NewWorkbook As Workbook
Dim CurrentWorksheet As Worksheet
' 设置当前工作簿
Set CurrentWorkbook = ThisWorkbook
' 禁用屏幕刷新和事件
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' 循环遍历当前工作簿中的每个工作表
For Each CurrentWorksheet In CurrentWorkbook.Worksheets
' 创建新的工作簿
Set NewWorkbook = Workbooks.Add
' 将当前工作表复制到新的工作簿
CurrentWorksheet.Copy Before:=NewWorkbook.Sheets(1)
' 保存新的工作簿
NewWorkbook.SaveAs "C:\目标文件夹路径\" & CurrentWorksheet.Name & ".xlsx"
' 关闭新的工作簿
NewWorkbook.Close SaveChanges:=False
Next CurrentWorksheet
' 启用屏幕刷新和事件
Application.ScreenUpdating = True
Application.DisplayAlerts = True
' 提示拆分完成
MsgBox "工作表拆分完成!", vbInformation
End Sub
请替换代码中的 “C:\目标文件夹路径” 为你想要保存新工作簿的目标文件夹的实际路径。运行该宏后,Excel会将每个工作表拆分为单独的工作簿,并以相应的工作表名称命名保存在目标文件夹中,每个工作表的内容将被完整地复制到新的工作簿中,并且原始工作簿中的工作表将保持不变。拆分完成后,会弹出一个消息框提示拆分完成。
请注意,此代码将在运行时禁用屏幕刷新和警告对话框以提高执行效率,并在拆分完成后启用。