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