как удалить возврат каретки конца таблицы таблицы Word? - PullRequest
0 голосов
/ 28 июня 2018

Вставка html-данных в таблицу Word cell.it создает возврат каретки конец ячейки таблицы. Как удалить возврат каретки только в конец ячейки таблицы.

enter image description here

Ответы [ 3 ]

0 голосов
/ 28 июня 2018

Следующее удалит ¶ до конца маркера ячейки

Dim rngcell As Range
Set rngcell = Selection.Cells(1).Range
rngcell.Start = rngcell.End - 2
rngcell.Text = Replace(rngcell.Text, vbCr, "")
0 голосов
/ 29 июня 2018

Как и в следующем случае - для всех отметок конечного абзаца во всех ячейках всех таблиц в документе:

Dim Tbl As Table, TblCell As Cell, Rng As Range
For Each Tbl In ActiveDocument.Tables
  For Each TblCell In Tbl.Range.Cells
    Set Rng = TblCell.Range
    With Rng
      .End = .End - 1
      Do While .Characters.Last = vbCr
        .Characters.Last = vbNullString
      Loop
    End With
  Next
Next

Однако лучше не вставлять их в первую очередь, и, пока мы не увидим код ОП, мы не можем посоветовать, как лучше всего этого достичь.

0 голосов
/ 28 июня 2018

Это удалит возврат каретки и изменит размер строк

Public Sub removeCR(ByRef rng As Word.Table)
    For Row = 1 To tbl.Rows.Count
        For col = 1 To tbl.Columns.Count
            Call tbl.Cell(Row, col).Select
            With Selection
                If Len(.Text) > 2 Then
                    If Mid(.Text, Len(.Text) - 2, 1) = vbCr Then
                        Let .Text = Left(.Text, Len(.Text) - 3) & chr$(7)
                    End If
                End If
            End With
        Next col
        Let tbl.Rows(Row).HeightRule = wdRowHeightAuto
    Next Row
End Sub

если вам нужно удалить несколько возвратов каретки или иметь дело с переводами строки, то вы можете рассмотреть изменение самой внутренней инструкции If, такой как

While Mid(.Text, Len(.Text) - 2, 1) = vbCr Or _
        Mid(.Text, Len(.Text) - 2, 1) = vbLf
    Let .Text = Left(.Text, Len(.Text) - 3) & Chr$(7)
Wend
...