Vba Excel宏仅在XLT文件中自动启动,而不在XLS文件中自动启动
我使用的是包含宏的和XLT,它通过打开创建XLS,然后 将其保存在choosen目录中,问题是,保存的文件包含 与XLT相同的宏。是否有机会修改程序使其生效 是否保存生成的文件而不保存宏 致以最良好的祝愿Vba Excel宏仅在XLT文件中自动启动,而不在XLS文件中自动启动,vba,excel,Vba,Excel,我使用的是包含宏的和XLT,它通过打开创建XLS,然后 将其保存在choosen目录中,问题是,保存的文件包含 与XLT相同的宏。是否有机会修改程序使其生效 是否保存生成的文件而不保存宏 致以最良好的祝愿 托马斯有几种方法可以做到这一点。如果您只需要工作表而不需要任何代码,那么最简单的方法可能就是将工作表复制到新工作簿中,然后保存: Private Sub workbook_open() Dim wb As Workbook Dim saveName As String
托马斯有几种方法可以做到这一点。如果您只需要工作表而不需要任何代码,那么最简单的方法可能就是将工作表复制到新工作簿中,然后保存:
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环境来删除不需要的部分。这有点复杂,也有一些重要的意义,但听起来上面说明的更简单的方法可能适合您的需要。如果您的问题是如何仅在从XLT调用宏时自动启动宏,而不是在从生成的XLS调用宏时自动启动宏,那么这可能会有所帮助
Private Sub Workbook_Open()
If ThisWorkbook.Path = "" Then
Call myMacro
End If
End Sub
仅当打开的文件是XLT而不是XLS时,才会调用myMacro