Обновленный ответ:
Сохранение всех символов между первым номером, найденным после "seq", и последним найденным номером, который вы можете использовать:
Function getNumbersFromString(strIn As String, strTerm As String) As String
Step1 = Trim(Mid(strIn, InStr(1, strIn, strTerm) + 3, Len(strIn)))
For startIndex = 1 To Len(Step1)
If IsNumeric(Mid(Step1, startIndex, 1)) Then Exit For
Next
For endIndex = Len(Step1) To 1 Step -1
If IsNumeric(Mid(Step1, endIndex, 1)) Then Exit For
Next
getNumbersFromString = Mid(Step1, startIndex, endIndex - startIndex + 1)
End Function
Исходный неправильный ответ:
Я думаю, что что-то вроде следующего поможет вам:
Function getNumbersFromString(strIn As String) As String
For Each char In Split(StrConv(strIn, 64), vbNullChar)
If IsNumeric(char) Then getNumbersFromString = getNumbersFromString & char
Next char
End Function
Это разбивает входящую строку на массив, где каждый элемент является символом.Затем он просто проверяет, является ли он числовым.Если это так, он добавляется к выводу.
Вы можете использовать его как UDF, поэтому в свою ячейку вы можете просто вставить:
=getNumbersFromString(A1)
Если вы хотите, чтобы числа только после вашего "seq"
термин, который вы можете сделать что-то вроде:
Function getNumbersFromStringAfterTerm(strIn As String, strTerm As String) As String
For Each char In Split(StrConv(Mid(strIn, InStr(1, strIn, strTerm), Len(strIn)), 64), vbNullChar)
If IsNumeric(char) Then getNumbersFromStringAfterTerm = getNumbersFromStringAfterTerm & char
Next char
End Function
, который будет использоваться как:
=getNumbersFromStringAfterTerm(A1, "seq")