首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VBA过程无法保存包含动态创建的过程的文件

VBA过程无法保存包含动态创建的过程的文件
EN

Stack Overflow用户
提问于 2016-02-09 20:47:57
回答 1查看 72关注 0票数 0

我正在自动创建一系列文件,尽管这些文件还只是草稿,但我必须将它们展示给相关经理。所以我想确保他们明白他们得到的文件只是初稿。

我尝试为每个新创建的文件在“打开,工作簿”事件中包含代码,使用http://www.cpearson.com/Excel/VBE.aspx中的代码来显示messagebox,并向管理器发出一些警告:

代码语言:javascript
运行
复制
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

当我运行脚本时,我看到,在屏幕更新或调试期间,当我打开任何新创建的文件时,它在没有error...However的情况下正确地创建了代码(即,当打开文件时,消息框不显示)。仅供参考,我将文件保存为.xlsm (启用宏)

代码语言:javascript
运行
复制
wb.SaveAs Filename:=file_path, FileFormat:=xlOpenXMLWorkbookMacroEnabled

我的建议是,这些文件是在没有VBA部件的情况下保存的。你能帮帮我吗?

EN

Stack Overflow用户

发布于 2016-02-09 21:00:59

所以你的文件根本不包含任何vba代码?我认为你把它复杂化了,或者我只是错过了它的本意,但我总是这样使用:

代码语言:javascript
运行
复制
Private Sub Workbook_Open()

    MsgBox "oi managers this is a draft"

End Sub
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35292523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档