2016-10-12 2 views
1

실제로 Gamma_Inv 함수를 사용하려고하지만 많은 변수가있는 복잡성을 최소화하기 위해 대신 pi 함수를 사용합니다. 문제를보다 간단하게 보여줍니다.VB.NET에서 Excel 함수를 사용하는 방법

내 코드는 다음과 같습니다

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 

내가 점점 오전 오류 :이 값이 할당되기 전에

'프레드'변수에 사용됩니다.

이런 종류의 의미가 있지만 무엇을 설정해야합니까?

MsgBox(WorksheetFunction.Pi) 

내가 추측하고 그것이 나 스프레드 시트를 열고 싶어하지만 기능 만이 아니라 엑셀 자체를 사용하려면 :

그것은 나를 사용하지 않습니다.

+0

이 질문에 무엇이 잘못되었으며 왜 그것이 downvoted인지 확실하지 않습니다! –

답변

3

예, 불행하게도 당신이 실행중인 엑셀 응용 프로그램은 워크 시트 함수를 사용할 필요가

당신은 응용 프로그램을 선언해야합니다.

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 방법은 조금 느리지 만 엑셀 수식에 사용되거나 바 주소 할 수있는 거의 모든 것을 평가할 수 있습니다.

+0

app.Quit()도 알려줘서 고마워. 나는 물건을 닫거나 종료하는 것이 끔찍하다 :-) –

1

좋아, 대답을 찾았습니다.

Dim value As New Application 

가 다음 그 안에 기능을 사용할 수 있습니다 :

MsgBox(value.WorksheetFunction.Pi) 
+0

다른 사람이 이미 올바르게 대답했을 때 자신의 답변을 제공 한 이유가 무엇입니까? –

+0

@StevenDoggart 내가 내 글을 올렸을 때 대답이 없었기 때문에. 아마도 우리 둘 다 같은 시간에 게시했습니다. 나는 Slai를 대답으로 받아 들일 것이며 +1을 할 것이다. –

+0

@StevenDoggart OP의 답변은 내 앞에 약 30 분이지만 새로운 Excel 응용 프로그램이 열리는 지 확신하지 못하기 때문에 게시했습니다. – Slai

관련 문제