小编nDi*_*Dim的帖子

如何使用Rubberduck编辑带有VBA代码的文件,并且在VBA项目中不留下Rubberduck的痕迹

我对Rubberduck 的一个非常限制因素是,仅仅在安装了Rubberduck 的开发PC 上打开VBA 项目就会对其进行修改。即使我没有故意更改任何内容而只是查看它,某些内容也会发生变化,因为 VB 编辑器会询问我是否要将更改保存到它打开的每个项目中。

将此与使用纯文本文件作为源代码的“正常”编程语言进行比较。例如,如果我从某人那里收到一个 .py python 脚本,对其进行编辑以添加一个功能并将其发回,他们永远不会知道,如果我使用记事本、vscode、vim 或其他任何东西来编辑它,对他们来说也没有什么关系

如果我对 VBA 项目做了同样的事情,并且安装了 ruby​​duck,它会以某种方式更改文件,甚至是我不应该接触的部分代码,这正是我想要避免的。如果可能的话,我想让自己使用Rubberduck 变得不再重要。

我想要实现的是:

  • 我收到一个包含 VBA 项目的二进制文件,我的任务是添加一个函数
  • 我编辑它以添加我的功能,但我保留了许多现有模块和其他代码不变
  • 也许我自己使用rubberduck功能只是为了让编码更容易,也许我这边有一些测试
  • 我以某种方式“清理”了 VBA 项目,使其免受 Rubberduck 可能已进行或需要进行的任何其他修改的影响
  • 我将文件发回给他们,他们不可能知道我在计算机中使用了 Rubberduck,而且除了我编写的新函数之外,VBA 项目中的任何其他内容都没有受到影响

关键要求是:

  • 他们发送二进制文件(例如 .xlsxm)并需要接收返回的相同内容(.xlsxm,但我在某个模块中添加了一个函数)。例如,我无法仅将文本文件中的 VB 源代码发回给他们
  • 我不能碰任何我不该碰的东西
  • 接收者是另一位开发人员,因此 VBA 项目源代码对他们来说很重要,而不是最终用户看不到它
  • 不寻找任何特定于应用程序的内容,excel 文件只是一个示例

我唯一想到的是将文本复制到另一个项目的各种形式(直接,或导出到文本文件,然后导入或类似),但这听起来有问题:

  • 涉及手动步骤并且容易出错。可能会带来比我一开始想要解决的问题更多的问题
  • 我不知道 Rubberduck 对整个项目产生的所有影响和变化。也许甚至有一些不仅仅涉及“文本”源代码本身?我如何确定文件 100% 干净?

我确实看到了这个问题,但它涉及专门排除测试模块的代码。就我而言,我想知道是否有一种正确、干净的方法来完全避免 Rubberduck 的所有副作用,而不仅仅是不包含某个模块或代码段。

vba rubberduck

2
推荐指数
1
解决办法
101
查看次数

标签 统计

rubberduck ×1

vba ×1