我写过这个函数:
Function Resolveq(Equacao As String, Variavel As String, Valor As Double) As Double
Resolveq = Evaluate(Replace(Equacao, Variavel, Valor))
End Function
并用以下方式进行测试:
表达式(传递给Equacao)25*EXP(-x/100)
变量(Variavel)x
值18
和18.25
使用值18
(或任何其他整数),正确计算表达式;使用18.25
(或任何其他非整数值)Excel会返回#Value!
错误。
但是使用在单元格中写入的表达式来计算相同的表达式,它会很好,具有整数和非整数值。
有人可以,请给我一个亮点吗?
答案 0 :(得分:0)
问题是未正确使用Replace功能的参数。他们是:
Replace (string1, find, replacement, [start, [count, [compare]]] )
替换参数需要一个字符串,而你传递的是Double。
在将Double传递给函数之前将其转换为字符串。
Function Resolveq(Equacao As String, Variavel As String, Valor As Double) As Double
Dim ValourStr as String
ValourStr = CStr(Valor)
Resolveq = Evaluate(Replace(Equacao, Variavel, ValourStr))
End Function
答案 1 :(得分:0)
这对我有用
Sub test()
Dim var As Variant
var = Resolveq("25*EXP(-x/100)", "x", 18.25)
End Sub
这个进入一个单元格也适合我
=Resolveq("25*EXP(-x/100)", "x", 18.25)