2016-08-22 358 views
0

我這行代碼複製工作表到新工作簿:VBA:重命名複製工作表

OrderForm.Copy ' copy worksheet to new workbook 

新工作簿顯示爲書ñ的.xlsx: enter image description here


當保存這是顯示的內容: enter image description here

我'好吧,如果它在標題欄上顯示爲Book n,我不想自動保存它,但是我想要的是當用戶決定保存時具有默認名稱(默認爲.xlsx)它,就像這樣:

enter image description here

+1

查找到'Application.GetSaveAsFilename '。 –

回答

1

使用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 
+0

我該把這個放在哪裏?正如我所提到的,我希望它適用於當我的宏運行代碼OrderForm.Copy時創建的工作簿。 – PuggyLongLegs

+0

@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

相關問題