打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
office Vba用第三方编辑器,如Sublime或Atom
office VBA的ide实在是太烂了,代码提示和语法高亮功能都不行,但是由于MS没有开放这个接口,不能用如sublime或Atom这样优秀的第三方编辑器?
经过一番研究,利用vba的导入导出模块的功能 ,部分实现了这个功能:
新建一个xlsm文件
alt+F11打开vbe环境,选中左边的ThisWorkbook,在代码面板输入下面的代码
Public Sub exportAndImport() Dim wkBook As Excel.Workbook Dim wkComp As VBIDE.VBComponent Dim macroPath As String Set wkBook = ThisWorkbook On Error Resume Next macroPath = ThisWorkbook.Path & "\" & "export\" For Each wkComp In wkBook.VBProject.VBComponents 'export If wkComp.Type = vbext_ct_StdModule Then '如果是模块就导出并删除 wkComp.Export macroPath & wkComp.Name & ".bas" wkBook.VBProject.VBComponents.Remove wkComp End If Next macroPath = ThisWorkbook.Path & "\" & "import\" tempfile = Dir(macroPath & "*.bas") While tempfile <> "" Set wkComp = wkBook.VBProject.VBComponents.import(macroPath & tempfile) '导入代码 wkComp.Name = Left(tempfile, Len(tempfile) - 4) tempfile = Dir Wend Debug.Print "in export and import" End Sub解释下,这就是把当前工作薄里的所有模块导出到当前子目录export,并从当前子目录import里,导入各个bas文件为对应文件名的模块。比如我的一个main.bas文件里的代码会导入成main模块。这样,就可以用 sublime或者 atom等ide来编辑。
main模块
两个问题
问题1:众所周之,在VBA中,模块是导出成.bas文件,类模块是导出成.cls文件,但是我发现.VBProject.VBComponents.import 不能指定导入类型,只要是允许导入的文件,都导入成VBA的模块。更不用提窗体的frm文件。
问题2:为了方便,我在工作表里扔了两个Button,一个Button宏是上述的函数,一个Button宏是运行 main里的一个main()函数
但是我发现,只要把这两个宏的功能集中的一个宏里,就会出问题,类似下面这样
call exportAndImport()call main.main()
感觉是exportAndImport,会多导入一个bas文件,结果会导致函数定义重复,有谁帮我解释一下吗?
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
有哪些炫酷的代码编辑器?
在Office VBA中如何快速进行多行注释?
Sublime 640
WORD为宏添加VBA项目数字证书签名
几分钟入门 Excel VBA,从此打开新世界的大门
全国access二级考试
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服