在处理Excel表格时,经常会碰到文字中掺杂数字而且需要对这些数字进行处理的情况。写一个简单的VBA函数,即可轻松提取文本中的数字。
先看效果:
再上代码:
Function GetNum&(txt As String)
''' 获取单元格中出现的第一串数字
Dim i&, a&, b&
Dim str$
If Len(txt) = 0 Then
GetNum = 0
Exit Function
End If
str = Replace(txt, ",", "")
a = 0
b = 0
For i = 1 To Len(str)
If IsNumeric(Mid(str, i, 1)) Then
If a = 0 Then a = i
Else
If a > 0 Then
b = i - 1
Exit For
End If
End If
Next
If a > 0 And b = 0 Then b = Len(str)
GetNum = Int(Mid(str, a, b - a + 1))
End Function
以上代码实现了对整数的提取,带有逗号的千分位数字也可以提取。如需提取负数、小数或提取多个数字,可以在代码技术上扩充。