gpt4 book ai didi

excel - 使用 Excel-DNA 在没有 Application.run 的 VBA 上创建函数

转载 作者:行者123 更新时间:2023-12-04 21:20:56 24 4
gpt4 key购买 nike

我正在使用 VB.NET 和 Excel-DNA Library 创建 Excel 插件。 .
在我的 Addin 项目上创建的函数在工作表上作为公式调用时可以完美运行。但我也希望它们在编写 VBA 代码时可用。

所以,假设我有一个函数 SumCalculation在 Excel-DNA 上创建如下:

<ExcelFunction(Category:="Calculations", Description:="Sum values", Name:="")>
Public Function SumCalculation(<ExcelArgument("First Value to sum")> Value1 As Double,
<ExcelArgument("Second Value to sum")> Value2 As Double) As Double
Return Value1 + Value2
End Function

在 Excel 上生成并加载 XLL 时,可以像这样在 VBA 上调用它:
Result = Application.Run("SumCalculation", 1, 1)

但是有什么方法可以直接调用它,如下所示?
Result = SumCalculation(1, 1)

最佳答案

Excel-DNA 允许 .xll 用作您可以从 VBA 引用和使用的 COM 服务器。这将不允许您直接调用该函数,但您可以创建一个可以在 VBA 例程中实例化的对象,并且您的计算可以是该对象上的方法。这使您可以:

  • 公开一个丰富的对象模型以在 VBA 中编程,
  • 其中 COM 对象共享插件其余部分的 AppDomain(内存空间),因此可以共享缓存等,
  • 注册以不需要管理员权限的方式实现。

  • 以下是 COM 服务器功能的分步示例: https://github.com/Excel-DNA/Samples/tree/master/DnaComServer

    更多详细信息(尽管不使用简单的 NuGet 包来构建加载项)也可以在此处找到:
  • http://mikejuniperhill.blogspot.co.za/2014/03/interfacing-c-and-vba-with-exceldna-no.html
  • http://mikejuniperhill.blogspot.co.za/2014/03/interfacing-c-and-vba-with-exceldna_16.html
  • 关于excel - 使用 Excel-DNA 在没有 Application.run 的 VBA 上创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49076446/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com