Зациклите и замените два или более пробелов только одним - PullRequest
1 голос
/ 18 октября 2019

Я хочу заменить все несколько пробелов в ячейках в моем диапазоне A1:K1000. Так что если 2 или более пробелов, то замените их одним пробелом " ".

Мой текущий код заменяет пробелы, которые " " (2) пробелы. Как настроить его для работы с 2 или более пробелами? Поэтому он будет обрабатывать такие случаи, как " ", " ", " " и т. Д.

Вот мой код:

Sub RemoveSpaces()

Dim r1 As Range
Set r1 = ActiveSheet.Range("A1:K1000") 
r1.Replace _
      What:=Space(2), _
      Replacement:=" ", _
      SearchOrder:=xlByColumns, _
      MatchCase:=True
Set r1 = r1.Find(What:=Space(2))
If Not r1 Is Nothing Then
   Call RemoveSpaces
End If
End Sub

Ответы [ 2 ]

2 голосов
/ 18 октября 2019

Нет необходимости в цикле ячеек:

enter image description here

Sub Test()

Dim rng As Range
Set rng = Sheets("Sheet1").Range("A1:A3")
rng.Value = Application.Trim(rng)

End Sub

enter image description here

0 голосов
/ 18 октября 2019

Итак, из комментария Скотта Кранера, решение этого вопроса выглядит следующим образом:

Sub RemoveSpaces()

    Dim A As Range

    Set A = ActiveSheet.Range("A1:K1000") 

    For Each cell In A
    cell.Value = WorksheetFunction.Trim(cell)
    Next

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...