我如何在 VB.NET 中使用 Excel 函数
How do i use an Excel function in VB.NET
我实际上正在尝试使用 Gamma_Inv 函数,但为了尽量减少具有大量变量的复杂性,我将使用 pi 函数来代替,因为它更简单地说明了我的问题。
我的代码是:
Imports Microsoft.Office.Interop.Excel
Public Class LoadData
Shared Sub Main(ByVal cmdArgs() As String)
Dim fred As WorksheetFunction
MsgBox(fred.Pi)
End Sub
End Class
我得到的错误是:
变量 'fred' 在赋值之前被使用。
这有点道理,但我应该把它设置成什么?
它不会让我使用:
MsgBox(WorksheetFunction.Pi)
我猜它想让我打开一个电子表格,但我只想使用该函数而不是 Excel 本身。
好的,我找到答案了。
您需要申报申请:
Dim value As New Application
那么你就可以使用里面的函数了:
MsgBox(value.WorksheetFunction.Pi)
是的,很遗憾,您需要 运行 Excel 应用程序才能使用工作表功能。
Dim app = New Microsoft.Office.Interop.Excel.Application
Dim wf = app.WorksheetFunction
MsgBox(wf.Pi)
MsgBox(app.Evaluate("PI()"))
app.Visible = True ' optional
app.Quit() ' don't forget to close it when done !
Evaluate
方法有点慢,但可以评估几乎所有可以在 Excel 公式或地址栏中使用的内容。
我实际上正在尝试使用 Gamma_Inv 函数,但为了尽量减少具有大量变量的复杂性,我将使用 pi 函数来代替,因为它更简单地说明了我的问题。
我的代码是:
Imports Microsoft.Office.Interop.Excel
Public Class LoadData
Shared Sub Main(ByVal cmdArgs() As String)
Dim fred As WorksheetFunction
MsgBox(fred.Pi)
End Sub
End Class
我得到的错误是:
变量 'fred' 在赋值之前被使用。
这有点道理,但我应该把它设置成什么?
它不会让我使用:
MsgBox(WorksheetFunction.Pi)
我猜它想让我打开一个电子表格,但我只想使用该函数而不是 Excel 本身。
好的,我找到答案了。
您需要申报申请:
Dim value As New Application
那么你就可以使用里面的函数了:
MsgBox(value.WorksheetFunction.Pi)
是的,很遗憾,您需要 运行 Excel 应用程序才能使用工作表功能。
Dim app = New Microsoft.Office.Interop.Excel.Application
Dim wf = app.WorksheetFunction
MsgBox(wf.Pi)
MsgBox(app.Evaluate("PI()"))
app.Visible = True ' optional
app.Quit() ' don't forget to close it when done !
Evaluate
方法有点慢,但可以评估几乎所有可以在 Excel 公式或地址栏中使用的内容。