excel中用正则匹配_excel中使用正则表达式

展开全部

Function JiSuan(Rng As Range) As Single

Dim Reg As New RegExp

Dim R As String

On Error GoTo ErrHand

R = (Rng)

Reg.Global = True

Reg.Pattern = "[\u4e00-\u9fa5]|m|M"

R = Reg.Replace(R, "")

Reg.Pattern = "×"

R = Reg.Replace(R, "*")

RegSZCC R

RegSZJJ R

JiSuan = Round(CSng(R), 4)

Set Reg = Nothing

Exit Function

ErrHand:

JiSuan = Err.Description

End Function

Sub RegSZCC(ByRef S As String)

Dim Reg As New RegExp

Dim MS

Dim R As String

Reg.Pattern = "(\d+\.{0,1}\d*)(\*|\\)(\d+\.{0,1}\d*)"

Set MS = Reg.Execute(S)

If MS.Count = 1 Then

If MS(0).SubMatches(1) = "\" Then

R = Format(CSng(MS(0).SubMatches(0)) / CSng(MS(0).SubMatches(2)), "0.00000")

Else

R = Format(CSng(MS(0).SubMatches(0)) * CSng(MS(0).SubMatches(2)), "0.00000")

End If

S = Reg.Replace(S, R)

RegSZCC S

End If

End Sub

Sub RegSZJJ(ByRef S As String)

Dim Reg As New RegExp

Dim MS

Dim R As String

Reg.Pattern = "(\d+\.{0,1}\d*)(\+|\-)(\d+\.{0,1}\d*)"

Set MS = Reg.Execute(S)

If MS.Count = 1 Then

If MS(0).SubMatches(1) = "+" Then

R = Format(CSng(MS(0).SubMatches(0)) + CSng(MS(0).SubMatches(2)), "0.00000")

Else

R = Format(CSng(MS(0).SubMatches(0)) - CSng(MS(0).SubMatches(2)), "0.00000")

End If

S = Reg.Replace(S, R)

RegSZJJ S

End If

End Sub

EXCEL中调用方e69da5e887aa62616964757a686964616f31333365633839法

B1=jisuan(A1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值