Удалить возврат каретки (alt+enter) из конца VBA


Код:

Sub removeEndingCarriageReturns()
    Dim Rng As Range
    Dim inputRange As Range
    On Error Resume Next
    Set inputRange = Application.Selection
    Set inputRange = Application.InputBox("Range", "Remove Ending Carriage Returns", inputRange.Address, Type:=8)
    For Each Rng In inputRange
        Rng.Value = Replace(Rng.Value, Chr(10), " ")
    Next
End Sub

Это прекрасно работает при преобразовании каждого возврата каретки в пространство (""). Я хочу, чтобы код преобразовывал только возврат каретки, который находится в конце. Как я могу это сделать, чтобы найти конечный возврат кареты?

Выбранный Диапазон :
Введите описание изображения здесь

Ячейки B3 и B6 имеют возврат каретки в конце, который я хочу удалить с помощью кода vba.

2 2

2 ответа:

Просто проверьте, является ли последний символ CR, и если да, то удалите его.

If Right$(Rng.Value, 1) = Chr(10) Then 
    Rng.Value = Left$(Rng.Value, Len(Rng.Value) - 1)
End If

Один из способов-использовать оператор Like для проверки того, что CR находится в конце

If Rng Like "*" & Chr(10) Then
    Rng.Value = Replace(Rng.Value, Chr(10), " ")
End If