VB(包括VBA)中没有这样的功能,但在VBScript中则可以实现,所以在VB中通过调用VBScript组件就可间接实现你的目的:
Dim a As Integer, b As Integer, c As Integer
Function CalcStr(StrNum As String) As Double
Set MSSC = CreateObject("MSScriptControl.ScriptControl")
MSSC.Language = "VBScript"
CalcStr = MSSC.Eval(StrNum)
End Function
Private Sub Command1_Click()
a = 1
b = 2
c = 3
MsgBox "a*b+c=" & CalcStr("a*b+c")
End Sub
如果只是把变量换成数字……实在太方便了。穷举找出所有变量,替换。
比如“a*b+c”其中a=1,b=2,c=3;
直接从头找到第一个不是运算符也不是数的量,找到对应值,替换。
直接替换的函数像VB这种傻瓜化的肯定有的!!
不是一定的,即这个公式不是固定的一个且公式的长度不定,例
感觉是一个不怎么复杂的公式,何不考虑用VBA来实现咧?