我正在使用和包含宏的XLT,它通過打開創建一個XLS,並將其保存在一個選定的目錄中,問題是,保存的文件包含 與XLT相同的宏。是否有機會修改proc以使其不保存生成的文件而不使用宏 ?Excel宏只在XLT文件中自動啓動而不在XLS文件中
最好的問候,
托馬斯
我正在使用和包含宏的XLT,它通過打開創建一個XLS,並將其保存在一個選定的目錄中,問題是,保存的文件包含 與XLT相同的宏。是否有機會修改proc以使其不保存生成的文件而不使用宏 ?Excel宏只在XLT文件中自動啓動而不在XLS文件中
最好的問候,
托馬斯
如果你的問題是如何自動啓動一個只有當它從XLT叫而不是當它從產生XLS叫宏,那麼也許這可以幫助
Private Sub Workbook_Open()
If ThisWorkbook.Path = "" Then
Call myMacro
End If
End Sub
myMacro纔會被調用,如果打開的文件是XLT,而不是XLS。
有一對夫婦的這樣做的方法。如果你只需要工作表和代碼的沒有,那麼最簡單的方法可能只是在工作表複製出一個新的工作簿,然後保存:
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,但聽起來像上面說明的更簡單的方法可能無論如何都可以滿足您的需求。
非常感謝您的幫助。 – KoKo 2010-08-12 10:01:24
非常感謝。有用。 – KoKo 2010-08-12 10:01:06