关于表达式计算成结果的最终解决方法汇总
excel吧
全部回复
仅看楼主
level 11
qianboccp 楼主
一楼献给百度
2019年12月02日 08点12分 1
level 11
qianboccp 楼主
在我们工作中有时候会遇见表达式比如:3+9*5-6+7*8这样的式子,需要快速得到结果。
1、方法一:evaluate函数
WPS直接可以使用evaluate函数,office必须在名称管理器里面添加才可以使用,
优点:简单易上手
缺点:不能有任何标注,不能是有×÷号(当然可以通过替换处理掉),最长表达式不能超过255字节。
2、方法二:=号激活法
优点:简单易上手,表达式没有字节限制。
缺点:不能有任何标注,不能是有×÷号(当然可以通过替换处理掉)
3、方法三:VBA法
Sub ccp()
Dim RegExp As Object
Set RegExp = CreateObject("VBScript.RegExp")
For t = 1 To Range("A65536").End(xlUp).Row
Cells(t, 1) = StrConv(Cells(t, 1), vbNarrow) '把计算式里的全角“(”、“)”都转化为半角“(”、“)”
Cells(t, 1) = Replace(Cells(t, 1), "", "")
Cells(t, 1) = Replace(Cells(t, 1), "÷", "/")
Cells(t, 1) = Replace(Cells(t, 1), "×", "*")
With RegExp
.Global = True
.Pattern = "\[.*?\]|[\u4e00-\u9fa5]|\{.*?\}"
Cells(t, 2) = .Replace(Cells(t, 1), "")
Cells(t, 3).Formula = "=" & Cells(t, 2)
End With
Next
End Sub
优点:简单,表达式没有字节限制。表达式可以有文字注释,可以有×÷号、括号
缺点:对VBA不懂的人来说稍微难一点。
4、方法四:excelhome终极方法
优点:简单,表达式没有字节限制。表达式可以有文字注释,可以有×÷号、括号,内置excel内,和excel函数一样
缺点:目前未发现。
2019年12月02日 08点12分 2
缺点是计算式超过255字符搞不定
2021年01月10日 13点01分
level 11
qianboccp 楼主
顶一下
2019年12月02日 09点12分 3
level 11
qianboccp 楼主
继续顶
2019年12月03日 00点12分 4
level 12
这个excelhome自定义函数与第三个VBA有啥区别吗
2019年12月03日 01点12分 5
excelhome是内置于excel,和excel浑然一体,和excel的sum函数一样随意使用,方便!
2019年12月03日 01点12分
level 5
excel中如何做到在每次清除f列内容后自动将e2单元格公式填充到地f列整列?
2020年01月06日 10点01分 6
不懂
2020年01月06日 10点01分
level 13
VB写那么好,羡慕。羡慕
2021年01月14日 12点01分 8
1