vba代码重构-有什么工具可以帮助吗?
我正在尝试重构我的VBA代码。多年来,我非常习惯在基于Java的IDE中使用重构。VBA编辑器是否支持任何重构或是否有任何加载项?MZ工具没有任何此类功能 我希望能够至少做到以下几点: 1.重命名变量 2.将过程拆分为子过程以使代码更具可读性vba代码重构-有什么工具可以帮助吗?,vba,excel,Vba,Excel,我正在尝试重构我的VBA代码。多年来,我非常习惯在基于Java的IDE中使用重构。VBA编辑器是否支持任何重构或是否有任何加载项?MZ工具没有任何此类功能 我希望能够至少做到以下几点: 1.重命名变量 2.将过程拆分为子过程以使代码更具可读性 3.将变量的范围从全局更改为过程,反之亦然我所知道的VBA中唯一的“重构”工具是Ctrl+F和Ctrl+R。我使用V-Tools进行重构,就像在对象中查找/替换一样,而不仅仅是VBA代码。 是的,有。。。。几乎 在过去的好日子里,我用这个。 帮了我很多,
3.将变量的范围从全局更改为过程,反之亦然我所知道的VBA中唯一的“重构”工具是Ctrl+F和Ctrl+R。我使用V-Tools进行重构,就像在对象中查找/替换一样,而不仅仅是VBA代码。
是的,有。。。。几乎 在过去的好日子里,我用这个。 帮了我很多,我想我有一些3.5英寸的磁盘;) 诀窍是将excel代码复制到Access或VB6并在那里进行重构。 替换范围:解决方案是创造性地命名和使用替换。 吐痰程序…很抱歉,这是一本手册 除非你有一些认真的excel vba代码,否则它通常是不值得的。我建议你将它的大部分转换成c#或VB.Net dll,在那里你可以进行重构、测试和一些现代魔术,而在vba中你只能做尽可能少的事 免责声明:我与这个项目密切相关
是VBA/VB6 IDE的开源外接程序,处于[非常]活跃的开发阶段,包括此功能 版本1.3包括重命名重构: 2.0版(beta版可用,但仍处于稳定状态)包括12个重构:
- 引入参数将局部变量提升为参数
- “引入”字段将局部变量提升到模块范围
- 封装字段将公共字段转换为属性
- 接近用法将仅在1个过程中使用的字段移动到该过程中。或将局部变量移动到其第一次使用的正上方
- Extract接口允许您选择要提取到接口中的类成员,为它们创建一个新的类模块,并使原始类实现提取的接口
- Implement Interface为未实现接口的所有成员创建存根,因此您无需通过在“代码窗格”下拉列表中逐个选择来手动创建存根:
Implements IClass1 Public Sub IClass1_DoSomething() Err.Raise 5 'TODO implement interface member End Sub Public Function IClass1_GetFoo() As Integer Err.Raise 5 'TODO implement interface member End Function Sub DoSomething() End Sub Function GetFoo() As Integer End Function
项目路线图上有更多重构工具(包括提取方法),您可以继续使用。到目前为止还没有使用过它。但是看到这个链接有帮助吗?您尝试过Visual Basic版本的Resharper吗?我知道VBA是不同的,但它可以满足您的大多数需求。我不估计您的机会-C#&VB.NET甚至需要很长时间才能获得这些功能。我想如果您需要做一个任何一种重量级代码,你都会想开始使用更多的重量级语言…Robbie Dee,重构在任何情况下对任何程序都是有用的。在10行代码之后,你会发现自己已经在重构了,所以它应该是任何IDE中的一个基本工具。不幸的是,世界正在慢慢适应。我认为你需要这样做e老式的方式,因为VBA是一个老式的IDE。别忘了用Ctrl-H替换。这听起来更像是讽刺,而不是有用的答案。或者另存为
.xlsx
xD。但说真的,Ctrl+H替换也有使用模式匹配
选项,但它不能用于多行。是的,IIRC,speed ferret仍然可用,但我没有我不认为它在10年内有任何有意义的发展。我相信Ruberduck VBA增加了更多的功能,可以在更多的VBA主机上工作,而且它是免费的,并且正在积极开发中。你能把这些解释添加到“重构”或“教程”中吗“GitHub上的wiki部分?我想知道这些工具做了什么,但不知道该去哪里找。@ShawnV.Wilson天哪,维基已经过时了,一点都不好笑。还有一个网站和博客也应该有这些信息。。要做的事这么多,时间这么少-但任何人都可以编辑/改进存储库的wiki。@MathieuGuindon wiki是目前唯一的文档来源吗?-我们的聊天机器人将接收维基编辑;“Features”页面可能会链接到一个新的“Refactorings”页面。@ShawnV.Wilson也会接受拉取请求。最近我也一直在尝试在网上发布信息,我有一个YouTube频道,有一个惊人的。。平衡工作、家庭、生活、编码以及文档。。。这很难()