RTrim пробелы для всего столбца в Excel

#excel #vba

#excel #vba

Вопрос:

Мне нужно обрезать пробелы справа от содержимого ячейки для всего столбца в Excel. Я узнал, что я могу использовать RTrim в VBA для достижения этой цели. Я выяснил, как заставить его работать строка за строкой индивидуально с помощью цикла. Есть ли какой-нибудь способ заставить его работать со всем выбранным столбцом одним махом? Вот код, который я собрал до сих пор. Но, как я уже сказал, было бы неплохо, если бы это можно было изменить / перекодировать, чтобы выполнить весь столбец за один раз:

 enter code here   Sub Macro1()
'
' Macro1 Macro
'

'
ApplicationScreenUpdating = False
Application.Goto Reference:="R1C1"
Columns("A:A").Select

   
Dim result As String
Last = Cells(Rows.Count, "A").End(xlUp).Row
For i = Last To 1 Step -1
  If (Right(Cells(i, "A").Value, 4)) Like "    " Or (Right(Cells(i, "A").Value, 3)) Like "   " Then
    Cells(i, "A") = RTrim$(Cells(i, "A"))
End If
Next i
End Sub
  

Я попытался прикрепить изображение того, как выглядят данные, с подчеркнутыми пробелами, чтобы их было хорошо видно … не уверен, что это сработало. Спасибо за любую помощь, которую кто-то может оказать. И если не весь столбец… может быть, какой-нибудь более простой способ.

Ответ №1:

Боюсь, что нет. Функции ОБРЕЗКИ (RTRIM, LTRIM, TRIM и т. Д.) Принимают только строковые значения. Это означает, что нет другого способа, кроме как перебирать диапазон и применять функцию обрезки к каждой строке по отдельности.

Комментарии:

1. Ну, хорошо. Спасибо за проверку. Я действительно тестировал его с большим количеством строк, и даже с > 5000 строк это занимает менее 12 секунд, так что это сработает. Тогда я буду придерживаться этого. Еще раз спасибо!