Подсчитать количество строк в обернутой ячейке через vba - PullRequest
2 голосов
/ 28 марта 2012

Как подсчитать количество строк в обернутой ячейке через код vba?

With Cells(1, 1)
    .WrapText = False
    height1 = .height
    .WrapText = True
    height2 = .height
End With 
MsgBox height2 / height1 & " Lines"

Этот код не будет работать, так как я установил высоту строки на фиксированную (видна только одна строка).

Также в моем тексте нет разрывов строк, поскольку данные вводятся через код VBA.

Заранее спасибо.

1 Ответ

3 голосов
/ 28 марта 2012

Один из способов состоит в том, чтобы вычесть длину ячейки с разрывом строки, удаленным из длины нескорректированной ячейки

Разрывы строк могут быть заменены строкой длиной 0 с использованием функции рабочего листа Substitute

Sub test()
Dim c As Range
Set c = ActiveCell
MsgBox Len(c.Value) - Len(Application.WorksheetFunction.Substitute(c.Value, Chr(10), vbNullString)) & " Linebreak(s)"
End Sub

[Update; Not a linebreak!]

Как указывает Сид в Получить первые две строки текста из перенесенной ячейки в Excel Это сложно, если работать с размерами шрифта (которые могут измениться).

Я думаю, что наиболее надежный способ - скопировать содержимое ячейки в другом месте (в пустую строку) и автоматически установить эту строку на основе этой ячейки, чтобы получить высоту.

...