Word VBA Макросы: Удаление пустой строки при использовании функции Replace в ячейке таблицы.

Автор Serggralt, 19 ноября 2019, 16:32

Serggralt

Есть такой алгоритм:
Sub test()
Dim tbl As Table, i As Long
Set tbl =  Selection.Tables(1)

For i = 1 To tbl.Rows.Count
     tbl.Cell(i, 1).Range.text = Replace(tbl.Cell(i, 1).Range.text, "word*","word1")
Next i
End Sub

Макрос пробегает построчно первый столбец таблицы в ворде и заменяет слово word* на word1. Возникла небольшая проблема: Replace возвращает строку с переходом на новую строку, в результате в таблице появляются пустые строки, как при нажатии на Enter после каждой строки! Есть ли возможность избавить от пустых строк в этом алгоритме?

Администратор

Макрос
Sub test()

    Dim tbl As Table
    Dim var, i As Long
   
    Set tbl = Selection.Tables(1)
   
    For i = 1 To tbl.Rows.Count
        ' Копируем данные из ячейки в переменную.
        var = tbl.Cell(i, 1).Range.Text
        ' Удаляем с конца два спецсимвола: один символ в виде кружка (его видно
            ' в режиме "непечатаемые символы"), второй символ вообще не видно.
        var = Left(var, Len(var) - 2)
        ' Замена и запись изменённых данных обратно в ячейку.
        tbl.Cell(i, 1).Range.Text = Replace(var, "word*", "word1")
    Next i
   
End Sub
[свернуть]