优秀的编程知识分享平台

网站首页 > 技术文章 正文

Excel中使用VBA宏拆分工作表并保存为单独的工作簿

nanyue 2024-07-26 15:50:56 技术文章 12 ℃
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会将每个工作表拆分为单独的工作簿,并以相应的工作表名称命名保存在目标文件夹中,每个工作表的内容将被完整地复制到新的工作簿中,并且原始工作簿中的工作表将保持不变。拆分完成后,会弹出一个消息框提示拆分完成。


请注意,此代码将在运行时禁用屏幕刷新和警告对话框以提高执行效率,并在拆分完成后启用。

Tags:

最近发表
标签列表