Для извлечения только чисел
или
Function Extract_Number_from_Text(sWord As String, Optional Metod As Integer)
' --- Функция убирает из строки числа или текст
'sWord = ссылка на ячейку или непосредственно текст
'Метод = 0 – числа
'Метод = 1 – текст
Dim sSymbol As String, sInsertWord As String
Dim i As Integer
If sWord = "" Then Extract_Number_from_Text = "Нет данных!": Exit Function
sInsertWord = ""
sSymbol = ""
For i = 1 To Len(sWord)
sSymbol = Mid(sWord, i, 1)
If Metod = 1 Then
If Not LCase(sSymbol) Like "*[0-9]*" Then
If (sSymbol = "," Or sSymbol = "." Or sSymbol = " ") And i > 1 Then
If Mid(sWord, i - 1, 1) Like "*[0-9]*" And Mid(sWord, i + 1, 1) Like "*[0-9]*" Then
sSymbol = ""
End If
End If
sInsertWord = sInsertWord & sSymbol
End If
Else
If LCase(sSymbol) Like "*[0-9.,;:-]*" Then
If LCase(sSymbol) Like "*[.,]*" And i > 1 Then
If Not Mid(sWord, i - 1, 1) Like "*[0-9]*" Or Not Mid(sWord, i + 1, 1) Like "*[0-9]*" Then
sSymbol = ""
End If
End If
sInsertWord = sInsertWord & sSymbol
End If
End If
Next i
Extract_Number_from_Text = sInsertWord
End Function
Данная строка отвечает за текстовые символы, которые могут встречаться внутри чисел и которые надо оставить(не удалять наравне с другими не числовыми символами). Остальные просто удалится.
If LCase(sSymbol) Like "*[0-9.,;:-]*" Then
|
Оставить только числа
1
|
If LCase(sSymbol) Like "*[0-9]*" Then
|
Если надо исключить из удаления помимо цифр точку
1
|
If LCase(sSymbol) Like "*[0-9.]*" Then
|
Комментариев нет:
Отправить комментарий