Как уменьшить заголовок до одной строки в MS Word, используя VBA

Я создаю документы, используя VBA в Word с данными, извлекаемыми из Excel. К сожалению, названия иногда бывают такими длинными, что они заключены в Word.

Мне нужно, чтобы названия оставались на одной строке. Я планирую сделать это, просто меняя размер шрифта, пока текст не уместится на одной строке.

В поисках решения этой проблемы я наткнулся .ComputeStatistics(wdStatisticLines),

К сожалению, когда я запускаю этот код, он постоянно говорит мне, что в моем тексте 0 строк. Как я могу получить код, чтобы дать правильное количество строк?

Вот мой код (только соответствующий раздел):

'Set document title
Dim sLength As Integer
Dim rStatTitle As Range
Set rStatTitle = wkb.Worksheets("Daten2").Range("nfStatTitle") 'Fund Title

With tblTitle.cell(2, 1)
    .Range.Text = rStatTitle.Cells(1, 1)
    Do Until .Range.ComputeStatistics(wdStatisticLines) <= 1
        sLength = Len(rStatTitle.Cells(1, 1))
        .Range.Font.Size = .Range.Font.Size - 1
    Loop
End With

FYI: tblTitle является таблицей слов и объявлена ​​как таковая далее в коде.

1 ответ

Решение

Эта страница говорит, что вы должны уменьшить Range таким образом, он исключает маркер конца клетки.

Dim newRange As Range
With tblTitle.cell(2, 1)
    .Range.Text = rStatTitle.Cells(1, 1)
    Set newRange = .Range
    newRange.End = newRange.End -1
    Do Until newRange.ComputeStatistics(wdStatisticLines) <= 1
Другие вопросы по тегам