当模板打开时,它运行一个Auto_open模块。保存为功能后禁用VBA模块
Sub Auto_Open()
SaveAsUserForm.Show
End Sub
然后,这提出了一个用户表示,请保存为一个OK命令按钮。
当好被点击运行该代码。
Private Sub SaveAs_Click()
Dim bFileSaveAs As Boolean
bFileSaveAs = Application.Dialogs(xlDialogSaveAs).Show
If Not bFileSaveAs Then Unload Me
If bFileSaveAs Then
Dim x As Object
Set x = Application.VBE.ActiveVBProject.VBComponents
x.Remove VBComponent:=x.Item("Auto_Open")
Unload Me
End Sub
这将删除Auto_Open模块,以便保存为用户表单不会在刚刚保存的新文件中弹出。但我只希望它被禁用,如果使用另存为功能(都使用自动打开模块或在文件选项卡
我也需要它,所以如果用户取消该框将完全禁用保存功能,只允许保存为。但是,如果使用了保存功能,它要求输入密码,这样我就可以编辑该模板。
所以基本上,当用户打开他不能做什么或改变什么模板,除非他另存为先,然后,一旦它的保存由于文件名称发生变化,它将禁用Auto_Open模块,因此每次打开新文件时都不会要求保存。
您是否考虑检查文件名和路径,并且只显示消息是否为“原文”路径?或者,如果您将该模板标记为“只读”,那么您的用户将始终需要“另存为”... –
将它标记为会要求它们启用宏,只需要一条语句,如果文件另存为则删除auto_open宏'和'如果使用保存功能然后要求输入密码' – Duraholiday
在这里你可以使用一些代码:http://www.mrexcel.com/forum/excel-questions/535724-how-open-save-dialog- box-visual-basic-applications.html –