2010-08-11 68 views
1

我正在使用和包含宏的XLT,它通過打開創建一個XLS,並將其保存在一個選定的目錄中,問題是,保存的文件包含 與XLT相同的宏。是否有機會修改proc以使其不保存生成的文件而不使用宏 ?Excel宏只在XLT文件中自動啓動而不在XLS文件中

最好的問候,

托馬斯

回答

2

如果你的問題是如何自動啓動一個只有當它從XLT叫而不是當它從產生XLS叫宏,那麼也許這可以幫助

Private Sub Workbook_Open() 
    If ThisWorkbook.Path = "" Then 
    Call myMacro 
    End If 
End Sub 

myMacro纔會被調用,如果打開的文件是XLT,而不是XLS。

+0

非常感謝。有用。 – KoKo 2010-08-12 10:01:06

0

有一對夫婦的這樣做的方法。如果你只需要工作表和代碼的沒有,那麼最簡單的方法可能只是在工作表複製出一個新的工作簿,然後保存:

Private Sub workbook_open() 
    Dim wb As Workbook 
    Dim saveName As String 

    ThisWorkbook.Sheets.Copy 
    Set wb = ActiveWorkbook 

    saveName = Application.GetSaveAsFilename(fileFilter:="Excel Workbook (*.xls),  *.xls") 

    If Not saveName = "False" Then 
     wb.SaveAs saveName 
    End If 
End Sub 

如果某些代碼仍然需要在XLS那麼您將需要直接操作VB環境以刪除不需要的部分。這涉及更多一些,並且有一些重要的restrictions/caveats,但聽起來像上面說明的更簡單的方法可能無論如何都可以滿足您的需求。

+0

非常感謝您的幫助。 – KoKo 2010-08-12 10:01:24

相關問題