如何在首次保存后禁用Auto_Open

打开模板时, Auto_Openmacros将运行以下代码:

 Sub Auto_Open() UserForm.Show End Sub 

然后,这将提出一个用户表单,说please save as一个OK命令button。 在这里输入图像说明 当点击确定时,它有这个代码。

 Private Sub SaveAs_Click() Dim bFileSaveAs As Boolean bFileSaveAs = Application.Dialogs(xlDialogSaveAs).Show If Not bFileSaveAs Then MsgBox "User cancelled", vbCritical Unload Me End Sub 

问题是Auto_Open之后运行的第一个SaveAs我希望它永远不会再次运行。 因为我希望能够在popup的用户窗体后打开它。 那么如何禁用Auto_Open,一旦运行,然后将其保存为禁用状态

我不能禁用所有的macros,因为还有工作簿中的其他人仍然需要工作。

谢谢

您必须使用Workbook.SaveAs方法MSDNfind后在这里得到SaveAsFilename …

至于在运行后删除一个子(我会保存之前这样做) 看到这里 …你需要你的自动打开小组在不同的模块,所以你可以在保存之前删除模块。

 Private Sub SaveAs_Click() Dim x As Object Set x = Application.VBE.ActiveVBProject.VBComponents x.Remove VBComponent:=x.Item("TestModule") 'Where TestModule is the module that holds the Auto Open script Set NewBook = Workbooks.Add Do fName = Application.GetSaveAsFilename Loop Until fName <> False NewBook.SaveAs Filename:=fName fName = False Unload Me End Sub 

退出auto_open如果文件名没有特定的措辞。

例如:如果文件名不是从“N”开始,auto_open将会退出。

 Sub auto_open() VBA_CODE = ActiveWorkbook.Name If Left(VBA_CODE, 1) <> "N" Then Exit Sub