Excel怎样批量提取文本中数字求和
1、首先打开Microsoft Office Excel 2007,新建文档并保存文件名《Excel怎样批量提取文本中数字求和 .xlsm》(演示文件,下面代码复制到能运行宏的工作簿都可以)如图。

2、然后按下快捷键ALT+F11打开VBE(宏)编辑界面,然后点菜单栏【插入】下拉中列表中点【模块(M)】如图。

3、然后插入了一个模块1,在代码框中复制如下代码:
Sub 选数据批量提取数字求和()
'2020-8-10 22:14:19
Dim myr As Range, myrs As Range, m As String, sn, i
Set myrs = Selection
For Each myr In myrs
m = myr.Text
sn = 0
With CreateObject("VBSCRIPT.REGEXP")
.Pattern = "-[0-9]+(\.[0-9]*)?|[0-9]+(\.[0-9]*)?"
.Global = True
If .Test(m) Then
For Each i In .Execute(m)
sn = sn + Val(i)
Next i
Else
sn = "无数字"
End If
End With
myr.Offset(0, 1).Value = sn
Next myr
End Sub

4、以上操作动态过程如下:

5、回到工作表窗口,首先选原数据表,然后运行【选数据批量提取数字求和】宏(菜单栏中点【视图】中下列表中【宏】列表【查看宏(V)】打开宏对方框,选该宏名,执行),在选单元格后一列输出求和结果,运行过程如下图。


1、按下快捷键ALT+F11打开VBE(宏)编辑界面,在【模块1】右边代码框【选数据批量提取数字求和】宏代码后面复制下面代码:
Function TEXTSUM(mm)
'2020-8-10 22:24:12
Dim mr, m As String, sn, i
On Error Resume Next
i = 0
For Each mr In mm
i = i + 1
If i = 1 Then
m = mr.Text
Else
m = m & "@" & mr.Text
End If
Next mr
If Err.Number <> 0 Then
m = mm
End If
Err.Clear
sn = 0
With CreateObject("VBSCRIPT.REGEXP")
.Pattern = "-[0-9]+(\.[0-9]*)?|[0-9]+(\.[0-9]*)?"
.Global = True
If .Test(m) Then
For Each i In .Execute(m)
sn = sn + Val(i)
Next i
Else
sn = "无数字"
End If
End With
TEXTSUM = sn
End Function

2、函数TEXTSUM
功能:文本中数据数字求和。
语法:
TEXTSUM(range)
range为单元格或单元格区域和文本。
3、函数TEXTSUM使用
公式 说明(结果)
=TEXTSUM(A1) -0.57
=TEXTSUM(A2) -0.46
=TEXTSUM(A1:A2) -1.03
=TEXTSUM("a1b2c3") 6


4、如果觉得这篇经验帮到了您,请点击下方的 “投票点赞" 或者“收藏”支持我!还有疑问的话可以点击下方的 “我有疑问”,谢谢啦!