Разрыв строки текста ячейки Excel

Моя цель — сделать перенос строки после имени, фамилии, разделенной запятой. Если я этого не сделаю, ячейка будет слишком маленькой, и текст не будет виден полностью. Поскольку это форма, созданная макросом, каждый раз длина имен людей меняется, поэтому устанавливать большую площадь ячейки (в настоящее время несколько объединенных ячеек) не является решением. Пока что я попробовал несколько вариантов, и ни один из них не работает.

Dim rng As Range
    Set rng = Range("E11:N13")
    With rng
        .Merge
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlTop
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
    End With

    Rows("13:13").RowHeight = 68

    Range("E8:G8").Merge
    Range("E8").FormulaR1C1 = "=TODAY()"

    If Not IsEmpty(rng.Value) And VarType(rng.Value) = vbString Then
        If InStr(rng.Value, ",") > 0 Then
'            rng.Value = Replace(rng.Value, ",", vbNewLine)
'rng.Value = Replace(rng.Value, ",", Chr(10))
rng.Value = Replace(rng.Value, ",", vbLf)

        End If
    End If

Пожалуйста, предоставьте некоторые примеры данных и ожидаемый результат - тогда будет легче помочь.

Ike 07.05.2024 10:11
rng.Value помещает диапазон в массив, и вы не можете применить VBA.Replace к массиву. Он работает только со строками, и вам нужна итерация. Но вам следует использовать Range.Replace. Вам следует просто использовать rng.Replace ",", vbLf.
FaneDuru 07.05.2024 11:32
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
2
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пожалуйста, используйте следующий адаптированный код:

    Dim rng As Range
    Set rng = Range("E11:N13")
    With rng
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlTop
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .Replace ",", vbLf
    End With

VBA.Replace не работает с массивами и rng.Value помещает диапазон в массив.

Другие вопросы по теме