Qui*_*ima 1 vb.net excel vba excel-dna
我正在使用 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
Run Code Online (Sandbox Code Playgroud)
当 XLL 生成并加载到 Excel 上时,可以在 VBA 上调用它,如下所示:
Result = Application.Run("SumCalculation", 1, 1)
Run Code Online (Sandbox Code Playgroud)
但是有什么方法可以像下面这样直接调用它吗?
Result = SumCalculation(1, 1)
Run Code Online (Sandbox Code Playgroud)
Excel-DNA 允许 .xll 充当 COM 服务器,您可以从 VBA 引用和使用该服务器。这不允许您直接调用该函数,但您可以创建一个可以在 VBA 例程中实例化的对象,并且您的计算可以是该对象上的方法。这使您能够:
以下是 COM 服务器功能的分步示例:https://github.com/Excel-DNA/Samples/tree/master/DnaComServer
更多详细信息(尽管没有使用简单的 NuGet 包来构建加载项)也可以在此处找到:
http://mikejuniperhill.blogspot.co.za/2014/03/interfaceing-c-and-vba-with-exceldna-no.html
http://mikejuniperhill.blogspot.co.za/2014/03/interface-c-and-vba-with-exceldna_16.html
| 归档时间: |
|
| 查看次数: |
4370 次 |
| 最近记录: |