在我们工作中有时候会遇见表达式比如: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函数一样
缺点:目前未发现。
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函数一样
缺点:目前未发现。