有時會遇到這種情況,某個Excel工作簿中包含許多工作表,需要把其中的某個工作表發送給其他用戶,或者將某幾個工作表發送給不同的用戶,通常的做法是將這些工作表移動或復制到新工作簿中,保存后再發送給他們。當工作表的數量較多時,逐一手動操作顯得有些繁瑣,這時用下面的VBA代碼就非常方便了,方法如下:
按Alt+F11,打開VBA編輯器,在代碼窗口中粘貼下列代碼:
Sub SaveSheetAsWorkbook()
Dim theName As String
On Error GoTo Line1
For Each sht In ActiveWindow.SelectedSheets
sht.Copy
theName = ThisWorkbook.Path & ThisWorkbook.Name & "_" & sht.Name & ".xls"
ActiveWorkbook.SaveAs Filename:=theName, FileFormat:=xlNormal
ActiveWindow.Close
Next
Line1:
End Sub
關閉VBA編輯器,返回Excel界面,選擇需要單獨保存為工作簿的工作表,如果要選擇多個工作表,可按Ctrl鍵或Shift鍵進行選擇,然后按Alt+F8打開“宏”對話框,選擇“SaveSheetAsWorkbook”宏執行即可。
上述代碼將每個所選的工作表單獨保存為一個工作簿,存放位置與原工作簿相同,名稱為“原工作簿名稱_工作表名稱.xls”。如果是在新建且未保存的工作簿中運行代碼,Excel會將新生成的工作簿保存到默認的文件位置,如“我的文檔”。






