工作需要在excel文件中,将一个单元格中混合文字与数字的信息中,长度为13位的多个数字提取出来,每串数字一格。
使用VBA自定义函数实现此功能
1.按 Alt+F11 打开VBA编辑器
2.点击"插入" > "模块",粘贴以下代码:
Function Extract13DigitNumbers(text As String) As Variant
Dim regex As Object, matches As Object
Dim result() As String
Dim i As Integer, count As Integer
Set regex = CreateObject("VBScript.RegExp")
regex.Global = True
regex.Pattern = "\d{13}" '匹配13位数字
Set matches = regex.Execute(text)
count = matches.count
If count = 0 Then
Extract13DigitNumbers = CVErr(xlErrNA)
Exit Function
End If
ReDim result(1 To count)
For i = 1 To count
result(i) = matches(i - 1)
Next i
Extract13DigitNumbers = result
End Function
3.返回Excel,选择一行中足够多的单元格(如B1:M1)
4.输入公式 =Extract13DigitNumbers(A1)(假设A1是源单元格)
5.按 Ctrl+Shift+Enter 作为数组公式输入
- 本文固定链接: https://www.fengshen.cn/2025/05/excel-提取单元格中13位数字(户号)并分列显示/
- 转载请注明: fengshen 发表于 一梦风神
觉得文章有用,微信打赏一元。
