Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vba代码重构-有什么工具可以帮助吗?_Vba_Excel - Fatal编程技术网

vba代码重构-有什么工具可以帮助吗?

vba代码重构-有什么工具可以帮助吗?,vba,excel,Vba,Excel,我正在尝试重构我的VBA代码。多年来,我非常习惯在基于Java的IDE中使用重构。VBA编辑器是否支持任何重构或是否有任何加载项?MZ工具没有任何此类功能 我希望能够至少做到以下几点: 1.重命名变量 2.将过程拆分为子过程以使代码更具可读性 3.将变量的范围从全局更改为过程,反之亦然我所知道的VBA中唯一的“重构”工具是Ctrl+F和Ctrl+R。我使用V-Tools进行重构,就像在对象中查找/替换一样,而不仅仅是VBA代码。 是的,有。。。。几乎 在过去的好日子里,我用这个。 帮了我很多,

我正在尝试重构我的VBA代码。多年来,我非常习惯在基于Java的IDE中使用重构。VBA编辑器是否支持任何重构或是否有任何加载项?MZ工具没有任何此类功能

我希望能够至少做到以下几点: 1.重命名变量 2.将过程拆分为子过程以使代码更具可读性
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频道,有一个惊人的。。平衡工作、家庭、生活、编码以及文档。。。这很难()