【发布时间】:2018-07-20 15:40:15
【问题描述】:
所以我得到了一个字符串,其中包含我想要计算为总和的数值。我尝试使用Application.evaluate,但我注意到我可以在计算中使用的字符数量有限制。有没有办法绕过或修复它以便我可以计算它?我正在考虑编写自己的“计算器”,但感觉有点过头了,一定有更简单的方法吗?
0 /(2^16) + 3 /(2^16) + 53 /(2^16) + 139573 /(2^16) + 1844259 /(2^16) + 4005892 /(2^16) + 7546905 /(2^16) + 14629148 /(2^16) + 15078164 /(2^16) + 7477520 /(2^16) + 3158785/(2^16) + 1258795/(2^16) + 538914/(2^16) + 396079/(2^16) + 12305/(2^16) + 1555/(2^16) + 258/(2^16) + 8/(2^16) + 4 /(2^16)
另一个例子:
1215 /( 7168 + 5922 + 5390 + 7034 + 10410 + 10494 + 12113 + 6607 + 448 + 67 + 2996 + 4103 + 15581 + 18432 + 7299 + 1215 + 177 + 11 + 3 + 0)*100
【问题讨论】:
-
你不能把它分成两半吗?为什么不
Application.Evaluate(1st_half_of_math) + Application.Evaluate(2nd_half_of_math)? -
@QHarr 抱歉,更新了
-
@Taelsin 想过,但不知道如何在不破坏任何东西的情况下做到这一点。可以说那不是“+”,那么我不能拆分它,或者如果计算为 8/(6+2),这也可能会破坏计算。
-
鉴于您的问题,这将起作用:
Application.Evaluate("0 /(2^16) + 3 /(2^16) + 53 /(2^16) + 139573 /(2^16) + 1844259 /(2^16) + 4005892 /(2^16) + 7546905 /(2^16) + 14629148 /(2^16) + 15078164 /(2^16)") + Application.Evaluate("7477520 /(2^16) + 3158785/(2^16) + 1258795/(2^16) + 538914/(2^16) + 396079/(2^16) + 12305/(2^16) + 1555/(2^16) + 258/(2^16) + 8/(2^16) + 4/(2^16)") -
@Taelsin 这很奇怪。我按照你说的做了,并写在立即,它在那里工作,但当程序本身试图运行它时,我得到错误 2015。
标签: vba calculation