2010-08-11 67 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

相关问题