Excel VBA评估和非整数参数

时间:2017-12-14 11:16:02

标签: excel vba

我写过这个函数:

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

  • 1818.25

使用值18(或任何其他整数),正确计算表达式;使用18.25(或任何其他非整数值)Excel会返回#Value!错误。

但是使用在单元格中写入的表达式来计算相同的表达式,它会很好,具有整数和非整数值。

有人可以,请给我一个亮点吗?

2 个答案:

答案 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)