Страница 1 из 1
[VB]Убрать лишние пробелы
Добавлено: 14 май 2011, 11:18
Чуччи
Задача: Убрать лишние пробелы во введенной строке
помогите(

Re: [VB]Убрать лишние пробелы
Добавлено: 01 авг 2011, 21:07
district
'рисовал в свое время макрос убирающий пробелы в самом начале выражения, в самом конце плюс двойные пробелы превращающий в одинарные. Посмотрите, может поможет.
Public soderzhanije as string
Dim soderzhanije1 As String
soderzhanije1 = ""
labela:
If soderzhanije = "" Then GoTo labele
'удаляю все двойные пробелы
soderzhanije1 = soderzhanije
soderzhanije = Replace(soderzhanije, " ", " ")
'перепроверяю на всякий случай
If soderzhanije <> soderzhanije1 Then
soderzhanije1 = ""
GoTo labela
End If
soderzhanije1 = ""
'если первый символ есть пробел - стираю и начинаю процедуру заново
If Left(soderzhanije, 1) = " " Then
'MsgBox (soderzhanije)
soderzhanije = Right(soderzhanije, CStr(Len(soderzhanije)) - 1)
'MsgBox (soderzhanije)
If soderzhanije <> "" Then
GoTo labela
End If
'если последний символ есть пробел - стираю и начинаю процедуру заново
ElseIf Right(soderzhanije, 1) = " " Then
soderzhanije = Left(soderzhanije, CStr(Len(soderzhanije)) - 1)
End If
labele:
End Sub
Re: [VB]Убрать лишние пробелы
Добавлено: 04 авг 2011, 00:36
AlexZZZ
Если пробелов не больше 6 подряд, то можно так:
Код: Выделить всё
Function RemoveSpaces(Str As String) As String
RemoveSpaces = Trim(Replace(Replace(Str, " ", " "), " ", " "))
End Function
Если больше, ну, принцип понятен...
А если код работает в Excel, то совсем просто:
Код: Выделить всё
Function RemoveSpaces(Str As String) As String
RemoveSpaces = Application.WorksheetFunction.Trim(Str)
End Function
Re: [VB]Убрать лишние пробелы
Добавлено: 13 сен 2011, 10:26
SAS888
Не зависимо от количества пробелов, идущих подряд, можно использовать функцию:
Код: Выделить всё
Function RemoveSpaces(iStr As String) As String
Do While InStr(iStr, " ") <> 0: iStr = Replace(iStr, " ", " "): Loop
RemoveSpaces = Trim(iStr)
End Function