1

使用 VBA,我试图将诸如“/10”之类的字符串转换为算术运算,这样如果我在数字 200 之后以某种方式连接它(取决于它的转换方式),则将返回数字 20。

谢谢你的帮助。

4

2 回答 2

5

您正在寻找的东西称为数学解析器。寻找可以在 VBA 中使用的库。如果您正在使用 excel 特定的东西——我确信 excel 已经内置了一个数学解析器——尽管我不知道作为程序员如何访问它。也许将表达式作为字符串粘贴在单元格中并调用 Eval()。

编辑 Microsoft 有意从 excel 中的函数调用中删除了此功能,但是可以通过创建以下函数来恢复它:

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

然后打电话Eval("200" & "/10")

编辑2

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

Application.Evaluate("200" & "/10")
于 2013-06-26T19:53:37.060 回答
1

下面的示例提供了一种完成您正在寻找的东西的方法。

Dim s As String
s = "/10"
Dim i As Integer
i = 200
Dim v
v = Evaluate(CStr(i) & s)
MsgBox v
于 2013-06-26T20:09:13.227 回答