Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Serggralt от 19 ноября 2019, 16:32

Название: Word VBA Макросы: Удаление пустой строки при использовании функции Replace в ячейке таблицы.
Отправлено: Serggralt от 19 ноября 2019, 16:32
Есть такой алгоритм:
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 после каждой строки! Есть ли возможность избавить от пустых строк в этом алгоритме?
Название: Re: Word VBA Макросы: Удаление пустой строки при использовании функции Replace в ячейке таблицы.
Отправлено: Администратор от 19 ноября 2019, 16:43
Макрос
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
[свернуть]
Название: Re: Word VBA Макросы: Удаление пустой строки при использовании функции Replace в ячейке таблицы.
Отправлено: Serggralt от 19 ноября 2019, 16:50
Спасибо огромное!!!