【问题标题】:Are Excel VBA references made in the workbook or the client machine?Excel VBA 引用是在工作簿还是客户端计算机中进行的?
【发布时间】:2019-05-17 03:13:39
【问题描述】:

我正在处理一个要分发给其他人的 Excel VBA 项目,但我需要确保他们启用了适当的引用。具体来说,最新的 Microsoft ActiveX Data Objects X.X Library,以便他们可以使用 ADODB 方法来运行 SQL 查询。

如果我在启用宏的 .xlsm 工作簿文件中启用这些引用,它们是否会自动可用并在最终用户的客户端计算机上运行,​​还是这些引用都是专门在客户端计算机上创建的?换句话说,使用我的 .xlsm 文件的每个人都必须手动进入他们的设置并进行这些引用吗?

【问题讨论】:

  • 如果他们安装了适当的 dll、tlb 或其他任何东西,那就没问题了。但是 dll 不随工作簿一起传输。他们不必勾选参考,但他们必须在他们的机器上安装相同的 dll。这对于 Windows\sysWOW64\scrrun.dll 等非常基本的东西是安全的,它包含 FilesystemObject 等的脚本类(ADO 应该没问题)。某些 dll 可能未安装在客户端上,因此请注意。 JohnyL 的回答只是确保客户端选择他们在注册表中默认的最新版本,但本身并不能保证 dll 存在。

标签: excel vba ado adodb


【解决方案1】:

为了摆脱引用的麻烦,可以使用后期绑定:

Dim rs As Object
Set rs = CreateObject("ADODB.Recordset")
rs.CursorLocation = 3 'adUseClient

【讨论】:

  • 这是否完全消除了引用的问题?
  • @SandPiper 是的。 VBA 运行时会自动创建合适的对象。
猜你喜欢
  • 1970-01-01
  • 2014-05-10
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多