VBA中缺少引用:如何“包含”模块?

问题描述:

我有一个遗留代码 - 用于Autocad的一些宏 - 我使用启用VBA的Autocad 2015运行它。有一些与字符串相关的函数如Trim,Mid等 而这些函数都缺少引用,VBA找不到它们的定义。我可以在对象浏览器中手动找到它们,所以我使用Strings.Trim,它工作。我如何避免在VBA中每次调用函数时添加模块名称?有没有像include String'?VBA中缺少引用:如何“包含”模块?

编辑:我有一个编译错误“无法找到项目或库”,这里是眼前这个消息后参考文献窗口的屏幕截图:

enter image description here

和Microsoft Word库选择是默认。我仔细检查,通向它的路径是正确的。 没有带MISSING前缀的库(或者只是看不到它)。也许,其中一些必须被排除,因为它是一个遗留代码,但我不确定在这种情况下疯狂的猜测是否可以,也许有办法让问题库标记出来?

+2

当前对代码的引用是什么?看看是否有任何损坏或缺失的参考。如果是这样修复它们:http://www.access-diva.com/d5.html – PaulFrancis 2014-10-09 09:33:00

+0

@PaulFrancis感谢您的关注,我更新了这篇文章。 – 2014-10-11 16:18:52

+0

有些东西告诉我,Autocad的位版本不是32.这是正确的吗?你的错误可能不是因为参考,而是因为编译器错误卡住某处。你是否在VBA代码上尝试过编译? – PaulFrancis 2014-10-13 08:42:11

可能您的某个参考文件(更新版本的AutoCAD或更可能是Microsoft Word)现在具有与以前不存在的功能或方法名称匹配的左,中,修剪等等。这将使这些函数名称不明确。 尝试选择性删除引用以查看对这些功能的影响,或者在键入Mid时查看智能感知是否具有不同的含义。

考虑为这些字符串函数编写包装。例如,编写一个内部调用strings.Left的Left函数,使用这些函数的位置可见。

虽然这不能立即解决您的问题,但它可以让您最小化对遗留代码的更改。