常用功能加载宏——一个工作簿的工作表另存为工作簿

2020-07-28 14:22:57 浏览数 (1)

前面实现了多个工作簿和合并到一个工作簿的功能,反过来,将一个工作簿里的工作表,另存为多个工作簿,然后分发给不同的人,应该也是经常会碰到的。让我们看看使用VBA如何实现:

首先在customUI.xml中增加代码:

代码语言:javascript复制
      <button id="rbbtnSht2Wb" label="工作表保存工作簿" onAction="rbbtnSht2Wb" imageMso="FileSaveAsExcelXlsx" />

回调函数:

代码语言:javascript复制
Sub rbbtnSht2Wb(control As IRibbonControl)
    Call MShtWk.Sht2Wb
End Sub

函数实现:

代码语言:javascript复制
Sub Sht2Wb()
    Dim path As String
    '保存在活动工作簿同一目录下
    path = ActiveWorkbook.path & Application.PathSeparator
    
    '关闭屏幕更新,提高速度
    Application.ScreenUpdating = False
    
    Dim sht As Worksheet
    For Each sht In Worksheets
        sht.Copy
        '按工作表的名称保存工作簿
        ActiveWorkbook.SaveAs path & sht.Name
        ActiveWorkbook.Close True
    Next
    
    Application.ScreenUpdating = True
    Set sht = Nothing
End Sub

0 人点赞