我有多行信息,只需要从中提取整数。
前任:
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/