|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 younger001 于 2019-9-18 12:21 编辑
大神,昨天在一个群里看到一个网友发的代码:
Function Evaluate64(ss As String)
Set reg = CreateObject("VBSCRIPT.REGEXP")
ss = Replace(Replace(Replace(Replace(Replace(Replace(ss, "(", "("), ")", ")"), "[", "("), "]", ")"), "{", "("), "}", ")") '替换全角()及[]{}
reg.Pattern = "\([^\(]*?\)"
Do While reg.Test(ss)
reg.Pattern = "[A-Za-z]*\([^\(]*?\)"
s1 = CStr(Evaluate(reg.Execute(ss)(0).Value))
ss = reg.Replace(ss, s1)
reg.Pattern = "\([^\(]*?\)"
Loop
Evaluate64 = Evaluate(ss)
End Function
这个先用EVALUATE对计算式中的函数部份进行计算替换,忽然想到大神的代码为了对函数与EXCEL保持一致,费了很多心,看能不能参照这个,就能匹配所有的EXCEL函数了,不过这个处理后的如果超255字符,仍会出错,由于我只会CTRL+C与CTRL+V,只好期待大神了,祝大神的作品更完美 |
|