如何在首次保存后禁用Auto_Open
打开模板时, Auto_Open
macros将运行以下代码:
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