使用 Excel DNA 将用 F# 编写的用户定义函数导入 VBA 子例程

Posted

技术标签:

【中文标题】使用 Excel DNA 将用 F# 编写的用户定义函数导入 VBA 子例程【英文标题】:Importing User-Defined Functions Written in F# Using Excel DNA Into VBA Subroutines 【发布时间】:2015-06-29 13:08:02 【问题描述】:

我目前正在使用 Excel DNA 在 F# 中编写函数并将它们作为公式导入 Excel。 Whenever selecting a cell, I am able to call any of the functions imported through Excel DNA.但是,在尝试创建新宏时,我只能调用代码中的内置公式,而不能调用用户定义的公式。例如,如果我写如下:

Sub a()
Range("A1").Value = ActiveWorkbook.Application.WorksheetFunction.Sum(2, 3)
End Sub

宏能够在单元格 A1 中输入“5”。但是,如果我有一个通过 Excel DNA 导入的用 F# 编写的函数,则上述逻辑不适用,因为该函数未在 ActiveWorkbook.Application.WorksheetFunction 下列出。用户定义的函数/公式应该放在哪里?

【问题讨论】:

【参考方案1】:

看看this tutorial。有几个步骤要完成。本教程使用 C#,但它应该同样适用于 F#。

【讨论】:

是的 - 这种基于 Excel-DMA ComServer 支持的方法是最好的。更简单一点就是调用myResult = Application.Run("MyFunction", param1, param2)

以上是关于使用 Excel DNA 将用 F# 编写的用户定义函数导入 VBA 子例程的主要内容,如果未能解决你的问题,请参考以下文章

将 Excel-DNA 与 VS2005 一起使用

如何使用SetValue在Excel DNA中添加超链接?

Excel DNA 垂直调整返回数组的大小

Excel DNA学习笔记简单的UDF自定义函数

如何在 Excel 用户定义函数中写入数组

如何将用熊猫提取的一列excel数据中的NaN替换为0