Я пытаюсь найти в списке Excel в ячейках все 16 последовательных чисел без пробелов. Есть ли способ найти это?

Я хочу, чтобы он нашел все числа, всего 16, но игнорируя весь другой текст в ячейке

Спасибо

Числа не всегда одинаковы, поэтому я не могу Ctrl F ... это строка из 16 чисел

1 ответ1

1

Следующая пользовательская функция UDF вернет первый экземпляр из 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 будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить UDF:

  1. откройте окно VBE, как указано выше
  2. очистить код
  3. закройте окно VBE

Чтобы использовать UDF из Excel:

= SweetSixteen(А1)

Чтобы узнать больше о макросах в целом, смотрите:

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

Макросы должны быть включены, чтобы это работало!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .