Страница 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