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