【问题标题】:Trying to call a .NET function from VBA - using RUN in VBA尝试从 VBA 调用 .NET 函数 - 在 VBA 中使用 RUN
【发布时间】:2011-10-23 09:01:21
【问题描述】:

我有一个 .Net 类库,并且已经完成了将其包含在 excel 中所需的所有操作。 (导出为 COM 可见,用于 com-interop 和 regasm'ing dll 以及) 我使用 excel 2007。在 excel 插件中,我看到我的“TestLib.Functions”被选中。我可以在我的 VBA 代码中访问该函数:

Set lib = New TestLib.Functions
returnVal = lib.Add(5);

这很好用。

出于其他代码审查原因,我还看到了使用 RUN 方法访问的另一个库中的一些函数:

Run("avSomeFunction", paramvalue)

现在,在 VBA 编辑器中,如果我尝试以相同的方式访问“添加”功能,

Run("Add", 5)

我收到一条错误消息,提示“找不到名称为 Add 的宏”。我有必要吗 除了为 .net dll 做 Regasm 之外,再次在 VB editot-tools-references 中添加 tlb 作为引用?有人可以让我知道这里有什么问题。

p.s :出于某种非常疯狂的原因,我只是突然工作了一次,但之后又没能在那里工作。很奇怪:(

【问题讨论】:

  • 请查看以下答案中提到的答案和线程以获得更接近的答案。

标签: .net vba excel


【解决方案1】:

虽然您的问题不是很直接,但我认为下面的链接将帮助您找到问题的解决方案。

首先,我发现forum post 解释了您解释的相同类型的错误“找不到宏”。

其次,如果这不起作用,请尝试使用下面提供的链接进行研究:

如果这不能解决您的问题,请编辑您的问题以包含更多信息。

【讨论】:

    【解决方案2】:

    Difference between : adding a tlb as reference to invoke function VS using 'Run'? 有这个问题的答案。基本上,我错过了 VBA 项目中对 tlb 的引用。除了注册dll,tlb也需要添加作为引用。

    【讨论】:

    • 将此标记为答案,因为此线程包含与同一问题相关的更多信息。
    猜你喜欢
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    相关资源
    最近更新 更多