VBA - 将字符串转换为算术运算符

时间:2013-06-26 19:48:53

标签: vba excel-vba excel

使用VBA,我试图转换一个字符串,如" / 10"进入算术运算,如果我以某种方式连接它(取决于它如何转换)在数字200之后,将返回数字20。

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

您正在寻找的是一种数学解析器。四处寻找可以在VBA中使用的库。如果你正在使用excel特定的东西 - 我确信excel已经内置了一个数学解析器 - 虽然我不知道你如何能够像程序员一样获得它。也许将表达式作为字符串粘贴在单元格中并调用Eval()。

修改 Microsoft故意从excel中的函数调用中删除此功能,但可以通过创建以下函数来恢复它:

Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End Function

然后只需致电Eval("200" & "/10")

<强> EDIT2

如下面的评论中所述,现代版本的VBA支持

Application.Evaluate("200" & "/10")

答案 1 :(得分:1)

以下示例提供了一种完成所需内容的方法。

Dim s As String
s = "/10"
Dim i As Integer
i = 200
Dim v
v = Evaluate(CStr(i) & s)
MsgBox v