如何在vb.net中评估Excel公式

3
我认为情况有所不同。我正在尝试为经常使用的基于Excel的程序编写自定义函数。主要问题是无法在函数中重复使用代码并返回已评估的公式。所以我有了以下想法。我可以使用参数从Excel中提取数据,让vb.net将这些参数放置在代码中,然后在Excel中重新评估它。下面是一个示例。
此代码将位于Excel中的定义名称“源代码”中。 ="Width+{0}+Height+{1}" 您可以看到有两件事发生了。
#1. 我将整个公式都作为字符串 #2. 我插入了一些“占位符”,用于传递的两个参数。
现在,两个参数也将放置在定义名称中: 单元格B1(参数1)=1+1=2 (单元格可以在Excel中评估) 单元格C1(参数2)=10+10=20 (单元格可以在Excel中评估) 现在就是函数发挥作用的地方。 单元格D1 =myformulaparsingfunction(Source_Code, Argument_1, Argument_2) 在vb.net后端中,我将提取source_code字符串,然后使用参数解析占位符。所以我会得到像这样的东西... ="Width+2+Height+20" 这就是我的问题所在。当我解析公式时,它仍然是一个字符串。我需要一种方法告诉Excel将此字符串作为公式进行评估。如果您们中有人知道如何做到这一点,或者也许有另一种实现我试图做的事情的替代方法,我乐意听取您们的想法。希望上述内容写得足够清楚,以便理解我的编码目的。提前感谢。
Joe
1个回答

4
你应该使用Evaluate方法来实现你想要的功能。简短示例:
Dim xlApp As Excel.Application
Set xlApp = New Excel.Application
xlApp.Visible = False
MsgBox xlApp.Evaluate("=5+(10+6)*100")
xlApp.Quit
Set xlApp = Nothing

阅读更多:http://www.xtremevbtalk.com/archive/index.php/t-177848.html

(此内容为链接,无需翻译)

我稍微了解一下。不确定我能否使用它。我的应用程序使用spreadsheetgear dll。我可能应该在我的第一篇帖子中提到这一点。这个评估函数能够与spreadsheetgear联系起来吗?那就太完美了。 - joeb
@joeb 我不熟悉这个 - 你为什么不试一下然后回来呢? - Ksenia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接