检测单元格中的一定数量的后续数字(VBA)

时间:2015-07-17 09:29:02

标签: excel vba excel-vba

我需要帮助提供一个功能,可以检测单元格或单元格范围内的一定数量的后续数字。

我有一堆描述形式的数据,文本之间隐藏着一个8位数的序列。我需要能够在单元格中检测到这个8位数字并将其提取到另一个单元格。

我无法提取字符串中所有数字的原因是因为同一个单元格中还有其他数字,所以我需要能够专门检测到8位数字。

提前致谢!

1 个答案:

答案 0 :(得分:0)

这将为您提供任何字符串中包含的前8位数字。

Sub Selvi()
    MsgBox GetConsequentialDigits(Cells(1, 1), 8)
End Sub

我把它变成了一个函数,所以你也可以直接在Excel中使用它:

=GetConsequentialDigits(A1,8)

这是功能:

Public Function GetConsequentialDigits(ByVal InCellString As String, ByVal DigitsNumber As Integer) As String
Dim Cpt As Integer, _
    TpStr As String, _
    TpRez As String
Cpt = 0
TpRez = vbNullString

For i = 1 To Len(InCellString) - 1
    If Cpt < DigitsNumber Then
        TpStr = Mid(InCellString, i, 1)
        If IsNumeric(TpStr) Then
            Cpt = Cpt + 1
        Else
            Cpt = 0
        End If
    Else
        TpRez = Trim(Mid(InCellString, i - DigitsNumber, DigitsNumber))
        Exit For
    End If
Next i

GetConsequentialDigits = TpRez
End Function