#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 секунд, так что это сработает. Тогда я буду придерживаться этого. Еще раз спасибо!