我這行代碼複製工作表到新工作簿:VBA:重命名複製工作表
OrderForm.Copy ' copy worksheet to new workbook
我'好吧,如果它在標題欄上顯示爲Book n,我不想自動保存它,但是我想要的是當用戶決定保存時具有默認名稱(默認爲.xlsx)它,就像這樣:
我這行代碼複製工作表到新工作簿:VBA:重命名複製工作表
OrderForm.Copy ' copy worksheet to new workbook
我'好吧,如果它在標題欄上顯示爲Book n,我不想自動保存它,但是我想要的是當用戶決定保存時具有默認名稱(默認爲.xlsx)它,就像這樣:
使用BeforeSave事件捕獲用戶保存,然後用初始值顯示自己的對話框(如下所示):
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim fName As String
Cancel = True
fName = Application.GetSaveAsFilename("Default Name", _
"Excel Workbook (*.xlsx), *.xlsx," & _
"Macro Enabled Workbook (*.xlsm), *xlsm")
ThisWorkbook.SaveAs fName
End Sub
我該把這個放在哪裏?正如我所提到的,我希望它適用於當我的宏運行代碼OrderForm.Copy時創建的工作簿。 – PuggyLongLegs
@PuggyLongLegs嘗試在此構建代碼:(http://www.mrexcel.com/forum/excel-questions/428213-programmatically-inserting-worksheet-change-event.html)。它顯示瞭如何將代碼添加到其他模塊,例如您創建的新工作簿。否則,您可以創建自己的事件處理類,並使用對新工作簿的事件綁定引用對其進行實例化。像這樣:(http://stackoverflow.com/questions/31686542/addign-an-event-for-another-wb-from-a-module) – Mikegrann
查找到'Application.GetSaveAsFilename '。 –