Excel 查找特定数量的字符

Excel 查找特定数量的字符

我试图在 Excel 列表单元格内查找所有连续的 16 个数字(没有空格),有没有办法搜索呢?

我希望它找到所有数字,总共 16 个,但忽略单元格中的所有其他文本

谢谢

这些数字并不总是相同的,所以我不能按 Ctrl F ...它是一串 16 个数字

答案1

下列用户定义函数 自定义函数将返回字符串中第一个连续 16 位数字:

Public Function SweetSixteen(s As String) As String
    Dim L As Long, i As Long, CH As String, j As Long
    L = Len(s)
    j = 0
    SweetSixteen = ""

    For i = 1 To L
        CH = Mid(s, i, 1)
        If CH Like "[0-9]" Then
            SweetSixteen = SweetSixteen & CH
            j = j + 1
            If j = 16 Then Exit Function
        Else
            j = 0
            SweetSixteen = ""
        End If
    Next i
End Function

如果有多个有效子字符串,则仅返回第一个。如果没有有效子字符串,则返回 Null。如果子字符串有超过 16 位数字,则仅返回前 16 位。

以下是一些示例:

在此处输入图片描述

用户定义函数 (UDF) 非常容易安装和使用:

  1. ALT-F11 打开 VBE 窗口
  2. ALT-I ALT-M 打开新模块
  3. 粘贴内容并关闭 VBE 窗口

如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除 UDF:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要从 Excel 使用 UDF:

=SweetSixteen(A1)

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

有关 UDF 的详细信息,请参阅:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

必须启用宏才能使其工作!

相关内容