1
我正在尋找一種方法來傳遞函數作爲參數。將函數作爲參數傳遞給VBA例如。根發現
說我有根查找算法的功能。該函數找到另一個函數f()的根。 現在我想能夠傳遞任何函數作爲參數,以便我可以使用具有不同函數的rootFinder函數(即,我已定義的n個函數中的任何函數)
如何傳遞f()它是各自的投入作爲一個論點?
這裏是我的代碼來說明這個問題。我用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
我使用了一個類似的函數傳遞一個數組(變體)。嘗試像這樣傳遞它',byval f as variant'。 (事件,如果它是一個字符串數組) – 2014-11-24 22:00:55