我正在使用和包含宏的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