我在MS Office产品中对VBA有点新意。我一直在寻找一些代码,这些代码会强制用户“另存为”我用作模板的.xls文件(但它不是实际的模板文件类型)
基本上,我有这个:
我一直在研究一些想法,但我不确定如何最好地实现它。我认为当用户首次打开.xls以保存到新位置时的提示是最好的方法,但是如果他们已经将文件保存到新位置并决定编辑新位置,我想要他们能够在那时'保存',因为现在它是他们自己的文件,而不是原始文件。
如果有人能指出我正确的方向或发现我的逻辑缺陷,我很乐意听到。
谢谢, 麦克
答案 0 :(得分:6)
我用作模板(但它不是实际的模板文件类型)
最简单的方法是将Read-Only Recommended
设置为true来保存文件。查看快照
即使用户尝试执行Save
,Excel会自动提示Save As
HTH
答案 1 :(得分:4)
我同意其他人的看法,模板和只读是更好的选择,但如果你自己开始滚动,这里有一个让你入门的例子。它进入ThisWorkbook模块
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim sNewName As String
Cancel = True 'Cancel the save operation
sNewName = Application.GetSaveAsFilename(Replace(Me.Name, ".xls", "1.xls"))
If sNewName <> Me.FullName And sNewName <> "False" Then
Application.EnableEvents = False
Me.SaveAs sNewName
Application.EnableEvents = True
End If
End Sub