vba - 如何检查字符串是否包含连续整数

标签 vba excel macros

我有多行信息,只需要从中提取整数。

前任:

A1 : 130001    
A2 : hello_24.02_75_150001  
A3 : 650000_take:away  
A4 : computer_800000_24.01.105

我只想取六位数(130000、150001、650000、800000)。我怎样才能只得到那些?

我试过IsNumeric(number)
If Regex.IsMatch(number, "^[0-9 ]+$") Then

...

End If

最佳答案

您可以在 VBA 中使用用户定义的公式。将以下代码放在一个新模块中,并在 Excel 中将其作为函数调用为 =Extract6Digits(A1)

Function Extract6Digits(Number As String)

Dim varCount As Integer
Dim i As Integer
Dim varOutput As String
Dim varTemp As String

varCount = 0
varTemp = ""

For i = 1 To Len("" & Number & "")

    If Asc(Mid("" & Number & "", i, 1)) >= 48 And Asc(Mid("" & Number & "", i, 1)) <= 57 Then

        varCount = varCount + 1
        varTemp = varTemp & Mid("" & Number & "", i, 1)

    Else

        varCount = 0
        varTemp = ""

    End If

    If varCount = 6 Then

        If varOutput = "" Then

            varOutput = varTemp

        Else

            varOutput = varOutput & "," & varTemp

        End If

        varCount = 0
        varTemp = ""

    End If

Next

Extract6Digits = varOutput

End Function

这绝不是最有效的方法,但它有效

关于vba - 如何检查字符串是否包含连续整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36599960/

相关文章:

ms-access - 在 VBA/Access 中,更改记录时从当前记录获取值

vba - 我可以将数组写入某个范围并仅重新计算更改的单元格吗?

ms-access - 如何设置 ms-access 组合框选定索引

excel - 将 Outlook 中选定电子邮件的电子邮件正文显示为 Excel 中的消息框?

excel - 如果是错误函数

c - 使用 C 宏在代码中很好地组合两个选项

vba - Excel VBA 抓取网页

excel - 如何根据电子表格中另一个单元格中的值动态更改公式中的输入单元格?

for-loop - 如何在for循环中运行jupyter笔记本宏

c - Eclipse 编辑器中多行 C/C++ 宏的快捷方式