我创建了一个 .xlsm wrkbk 模板,其中将下面的代码(h/t mrexcel.com)嵌入在启用宏的模板文件的模块中。
为了防止用户覆盖模板文件,宏应该在文件打开后立即执行,而无需最终用户手动调用子宏。
但代码没有执行。非常感谢您的专业帮助!
工作簿打开时强制“文件另存为”
Private Sub Workbook_Open()
Dim strNewFileName As String
strNewFileName = Application.GetSaveAsFilename(InitialFileName:=ThisWorkbook.Name & " A", FileFilter:="Excel Workbook (*.xls), *.xls", FilterIndex:=1)
IIf strNewFileName = "False" Then
MsgBox "You must save a copy!"
Workbook_Open
Exit Sub
End If
ThisWorkbook.SaveAs Filename:=strNewFileName
End Sub
答案1
听起来你需要做的就是将文件保存为模板
.XLTX
不带( )和带( )宏的模板都.XLTM
无法保存。