Мне нужно только получить первые две строки как wrapedtext1wrappedtext2. Возможно ли это?
Да, это возможно возможно, но есть НЕТ ПРОСТОГО способа достичь этого. Есть много факторов, которые вы должны учитывать.
1) Высота строки в пикселях
2) Тип и размер шрифта
3) Межстрочный интервал
4) Объединена ли ячейка?
5) Является ли ячейка в состоянии автоподбора
6) Весь текст в обычном режиме или содержит жирный, курсив, подчеркивание и т. Д. И т. Д.
Рассмотрим этот снимок
Например, высота строки в пикселях может быть получена из
Debug.Print Range("A1").Height * (24 / 18)
Размер шрифта в приведенном выше случае может быть достигнут из этого
Debug.Print Range("A1").Font.Size
Но проблема в том, что произойдет в приведенном ниже сценарии?
По-моему, было бы слишком сложно добиться того, чего вы хотите. Лучше всего было бы использовать ALT + Enter
для вставки разрывов строк, а затем извлекать текст.
Followup
Строки вводятся в обернутую ячейку через код vba. Итак, как вставить данные, нажав Alt + Enter? - 1355 4 часа назад
В таком сценарии вы можете использовать аналогичный подход.
Sub Sample()
Dim strg As String
strg = "This is a sample" & vbCrLf & _
"sentence which is" & vbCrLf & _
"in Cell A1 and the" & vbCrLf & _
"text is separated" & vbCrLf & _
"with line breaks"
With Range("A1")
.Columns(1).ColumnWidth = 16.86
.Font.Name = "Calibri"
.Font.Size = 11
.Value = strg
End With
End Sub
ПРИМЕЧАНИЕ : Для вышеприведенного вам нужно будет записать макрос и посмотреть, какой шрифт, размер шрифта и ширина столбца могут принимать определенное форматирование. Опять же, вам придется учитывать тот факт, что приведенный выше пример относится к неформатированной ячейке на новом листе. Если вы пишете в объединенную ячейку или ячейку, отформатированную отдельно, вам придется соответствующим образом изменить вышеуказанный код, чего легко достичь, записав макрос. Я также предполагаю, что уровень ZOOM установлен на 100%
ИЛЛЮСТРАЦИИ
НТН
Sid