Здравствуйте. Нужна помощь.
Есть файл ексел пример:
столбец B: пустой
столбец C: Вкл. компрессора (рем. 0,3 мм.) КамАЗ 130-3509092-63
Каким способом реализовать перенос из C в B последних 15 цифр с тире и точками?
Я нашел скрипт VBS но он переносит все символы из ячейки, пример работы скрипта 03130-3509092-63
[SPOILER]
Function Extract_Number_from_Text(sWord As String, Optional Metod As Integer)
'sWord = ссылка на ячейку или непосредственно текст
'Metod = 0 – числа
'Metod = 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
[/SPOILER]
Может кто подсказать как реализовать это, может есть другие варианты?
Буду признателен за подсказки.
в VB я новичок
Есть файл ексел пример:
столбец B: пустой
столбец C: Вкл. компрессора (рем. 0,3 мм.) КамАЗ 130-3509092-63
Каким способом реализовать перенос из C в B последних 15 цифр с тире и точками?
Я нашел скрипт VBS но он переносит все символы из ячейки, пример работы скрипта 03130-3509092-63
[SPOILER]
Function Extract_Number_from_Text(sWord As String, Optional Metod As Integer)
'sWord = ссылка на ячейку или непосредственно текст
'Metod = 0 – числа
'Metod = 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
[/SPOILER]
Может кто подсказать как реализовать это, может есть другие варианты?
Буду признателен за подсказки.
в VB я новичок