我正在自动创建一系列文件,虽然这些文件只是草稿我必须向相关经理展示。所以我想确保他们理解他们获得的文件只是初稿。
我尝试将代码包含在" Open,Workbook"每个新创建的文件的事件使用http://www.cpearson.com/Excel/VBE.aspx中的代码显示消息框,并为管理员提供一些警告:
Sub CreateEventProcedure(wb, code)
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Dim LineNum As Long
Const DQUOTE = """" ' one " character
Set VBProj = wb.VBProject
Set VBComp = VBProj.VBComponents("ThisWorkbook")
Set CodeMod = VBComp.CodeModule
With CodeMod
LineNum = .CreateEventProc("Open", "Workbook")
LineNum = LineNum + 1
.InsertLines LineNum, " MsgBox " & DQUOTE & code & DQUOTE
End With
End Sub
当我运行脚本时,我看到,在屏幕更新或调试期间,它正确创建代码而没有错误...但是,当我打开任何新创建的文件时,代码不存在(即打开文件时不显示消息框)。只是fyi,我将文件保存为.xlsm(启用宏)
wb.SaveAs Filename:=file_path, FileFormat:=xlOpenXMLWorkbookMacroEnabled
我的提示是,某些文件在没有VBA部分的情况下保存... 你能帮我吗?
答案 0 :(得分:0)
所以你的文件根本不包含任何vba代码?我认为你过于复杂,或者我只是错过了意图,但我总是使用类似的东西:
Private Sub Workbook_Open()
MsgBox "oi managers this is a draft"
End Sub