這是我的問題:我想創建一個函數,它將X放入函數的方程中。Excel-VBA:創建接受數學等式的函數
我認爲劇本永遠是這樣的:
Function Myfunction(x As Integer)
Myfunction = <EQUATION like 2*x>
End Function
我需要做的就是把公式單元格爲文本和MyFunction的將採取它。所以,這個方程總是在變化。
這是我的問題:我想創建一個函數,它將X放入函數的方程中。Excel-VBA:創建接受數學等式的函數
我認爲劇本永遠是這樣的:
Function Myfunction(x As Integer)
Myfunction = <EQUATION like 2*x>
End Function
我需要做的就是把公式單元格爲文本和MyFunction的將採取它。所以,這個方程總是在變化。
退房的Evaluate
功能 - 看到這樣的代碼示例:
Option Explicit
Sub Test()
Debug.Print EvalForX("(2+X)*44", 14)
Debug.Print EvalForX("X^3", 22)
Debug.Print EvalForX("(X+10)*(X-3)", 7)
Debug.Print EvalForX("X", 12)
End Sub
Function EvalForX(ByVal strEquation As String, ByVal intX As Integer) As Double
EvalForX = Evaluate(Replace(strEquation, "X", CStr(intX), 1, -1, vbTextCompare))
End Function
這將輸出:
704
10648
68
12
,可以在工作表被用作一個用戶定義函數:
這是最終的解決方案
EvalForX =評估(更換(更換(strEquation, 「X」,CStr的(INTX),1,-1,vbTextCompare), 「 」「。」,1,-1,vbTextCompare))
'Myfunction = ActiveSheet.Evaluate(「2 *」&x)' –
Psst @ScottCraner - 'Evaluate' not'Evalutate';) – Rory
@Rory是啊是啊。你對一個愚蠢的建築工人有什麼期望? Weez不能吃spellz麥芽汁。我編輯了原始評論。謝謝。 –