【发布时间】:2020-05-04 09:30:15
【问题描述】:
我确信有不同的方式来表达这个问题,但这是我想要达到的最终结果。
所以,我有一个设置,其中代码用 C# 编写并作为函数添加到 Excel。它依赖于在 VBA 窗口中的 Tools->References 中有一个特定的 .tlb 文件。
当我对此进行测试时,.tlb 文件(以及其他文件)位于我的本地驱动器上,但现在项目正在运行,我需要将其传输到网络驱动器。问题是我找不到任何方法来更改被引用的实际文件(或文件路径) - 它总是在查看我的本地路径。
我尝试了一些方法:
使用 .References.Remove 表达式尝试了几个 VBA 代码。这实际上并没有从列表中删除引用,它只是取消选中它。
我尝试从本地驱动器中删除文件(导致 Excel 错误,引用已被移动、删除或重命名 - 很好),然后从我想要的新位置添加引用。这导致了以下两种情况之一:
1) 如果我尝试手动添加它 - 没有任何反应,现有的引用保持未选中状态,并且没有添加任何新内容(据我所知)。
2) 如果我尝试通过 .References.AddFromFile "filepath" 表达式执行此操作,它会勾选引用,如果未勾选(这确实 not 使外部公式起作用),或者引用的错误如果打勾的话,这样的名字已经存在了。
【问题讨论】:
-
大胆猜测:您是否尝试过查看注册表并以这种方式删除引用。然后你可以用网络位置重新添加它..也许..只是猜测,我自己还没有真正研究过
-
@Zac 我在想这可能会解决它,但我不知道这些存储在注册表中的什么位置。您对此有什么见解吗?或者我应该问问 ol' Google?
-
:) 谷歌是我开始的地方。不幸的是,这不是我在工作中可以做的事情(尽管可能会在周末做)。我为不同的应用程序做了类似的事情,它确实对我有用。只需确定这些在注册表中的位置.. 说起来容易做起来难
-
Rubberduck 具有设置和删除引用的实用程序。也许它可以提供帮助。
标签: excel vba reference updates