我正在使用包含宏的XLT,它通过open创建一个XLS 将其保存在选择的目录中,问题是,保存的文件包含 与XLT相同的宏。有没有机会修改proc来制作它 在没有宏的情况下保存生成的文件?
最好的问候,
托马斯
答案 0 :(得分:2)
如果您的问题是关于如何仅在从XLT调用宏时自动启动宏而不是从生成的XLS调用宏时,那么这可能会有所帮助
Private Sub Workbook_Open()
If ThisWorkbook.Path = "" Then
Call myMacro
End If
End Sub
如果打开的文件是XLT而不是XLS,则只会调用myMacro。
答案 1 :(得分:0)
有几种方法可以做到这一点。如果您只需要代码的工作表和 none ,那么最简单的方法可能就是将工作表复制到新工作簿然后保存:
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,但听起来上面说明的更简单的方法可能适合您的需求。