1
나는 인수로 함수를 전달하는 방법을 찾고있다.VBA에서 인수로 함수 전달 예. 루트 찾기
내가 루트 검색 알고리즘을 가지고 있다고 가정 해 봅시다. 이 함수는 다른 함수 f()의 루트를 찾습니다. 이제 다른 함수 (즉, 내가 정의한 n 개의 함수 중 하나)로 rootFinder 함수를 사용할 수 있도록 모든 함수를 인수로 전달할 수 있기를 원합니다.
어떻게 f() 함수를 전달할 수 있습니까? 그리고 그것은 논증으로서 각각의 입력입니까?
다음은이 질문을 설명하기위한 코드입니다. 나는 placeholder로서 f()와 functionInputs를 사용했다.
Function rootFinder(ByVal lowBound As Double, ByVal upBound As Double, ByVal f() As String, ByVal functionInputs As String)
'this function uses the
Dim xmid As Double, xold As Double, tol As Double
'accuary of algorithm
tol = 0.001
If f(lowBound,functionInputs) * f(upBound,functionInputs) > 0 Then
MsgBox "choose other bounds"
Else
xold = lowBound
Do
xmid = (lowBound + upBound)/2
If Abs((xmid - xold)/xmid) < tol Then
Exit Do
End If
xold = xmid
If f(lowBound,functionInputs) * f(xmid,functionInputs) > 0 Then
lowBound = xmid
Else
upBound = xmid
End If
Loop
rootFinder = xmid
End If
End Function
내가 (변형) 배열을 통과하는 유사한 기능을 사용합니다. 이것을'byvalval f as variant '와 같이 전달하십시오. (문자열 배열 인 경우 이벤트) –