专业编程基础技术教程

网站首页 > 基础教程 正文

VBA提取字符串中的数字,这么做就是简单

ccvgpt 2025-04-06 14:12:12 基础教程 9 ℃

字符串操作中,无非就是文字、符号和数字。

如何在一个字符串中找出数字呢?本节就介绍一下方法。

VBA提取字符串中的数字,这么做就是简单

如下图所示,提取了一些字符串中的数字。

其实际上就是对字符串中的每个字符进行对比操作,然后把数字单独找出来。

原理就是这么简单。

关键是如何实现对数字的判断。

我们做了一些代码来进行判断:

Private Sub CommandButton1_Click()
Dim r As Range
Set r = Range("C3:C10")
Dim i As Integer, ix As Integer
ix = r.Count
Dim x As Integer, xx As Integer
Dim xNumb As String
For i = 1 To ix
    xNumb = ""
    xx = VBA.Len(r.Item(i))
    For x = 1 To xx
        If VBA.Asc(VBA.Mid(r.Item(i), x, 1)) >= 48 And VBA.Asc(VBA.Mid(r.Item(i), x, 1)) <= 57 Then
                xNumb = xNumb & VBA.Mid(r.Item(i), x, 1)
        End If
    Next x
    r.Item(i).Offset(0, 3).Value = xNumb
Next i
End Sub

如上代码有一行判断的条件语句:

If VBA.Asc(VBA.Mid(r.Item(i), x, 1)) >= 48 And VBA.Asc(VBA.Mid(r.Item(i), x, 1)) <= 57 Then
  xNumb = xNumb & VBA.Mid(r.Item(i), x, 1
End If

我们对每个字符进行ASC码判断,48代表0,57代表9,也就是数字0-9的ASC码。

本示例相对简单,并不能十分完善地达到提取要求,如要把每个数字进行一个分割处理。

有兴趣的朋友,可以利用本代码进行加工操作。

每天编一些代码,可以训练逻辑思维,如果不想让自己的脑袋生锈,这也是一件不错的工作。

欢迎关注、收藏

---END---

最近发表
标签列表