[Назва макросу][Що робить і коли знадобиться — одне речення.]
'-----------------------------------------------
' Опис: прибирає зайві пробіли в діапазоні
' ПРИЙМАЄ: targetRange — діапазон для очищення
' ПОВЕРТАЄ: нічого
'-----------------------------------------------
Private Sub CleanSpaces(ByVal targetRange As Range)
Dim dataArray As Variant, rowIndex As Long, columnIndex As Long
dataArray = targetRange.Value ' читаємо все одним масивом
Application.ScreenUpdating = False ' вимикаємо перемальовування
For rowIndex = 1 To UBound(dataArray, 1)
For columnIndex = 1 To UBound(dataArray, 2)
dataArray(rowIndex, columnIndex) = _
Application.Trim(dataArray(rowIndex, columnIndex))
Next columnIndex
Next rowIndex
targetRange.Value = dataArray ' записуємо назад одним махом
Application.ScreenUpdating = True ' вмикаємо назад
End Sub