Всем привет!
Уточнение: приведенное форматирование текста внутри ячейки это просто пример, т.е. на самом деле оно может быть произвольным.
РЕШЕНИЕ №1 от Alec Perle, в ответе #12:
Ограничение: работает только если в ячейке содержится не более 255 символов.
Есть ячейка A1, в которой содержатся строки с разным форматированием (см. вложение):
3. Жирный текст
2. Красный текст
1. Обычный текст
Уточнение: приведенное форматирование текста внутри ячейки это просто пример, т.е. на самом деле оно может быть произвольным.
Если я делаю так:
| Код |
|---|
Cells(1, 1).FormulaR1C1 = "4. Обычный текст" & Chr(10) & Cells(1, 1).FormulaR1C1 |
то форматирование нарушается, становиться одинаковым для всей ячейки (т.е. для всего текста внутри ячейки).
РЕШЕНИЕ №1 от Alec Perle, в ответе #12:
Ограничение: работает только если в ячейке содержится не более 255 символов.
| Код |
|---|
ActiveCell.Characters(0, 0).Insert "Дополнительная строка" & Chr(10) |
РЕШЕНИЕ №2 от БМВ, в ответе #11:
Ограничения:
1. В процессе вставки подменяются некоторые цвета текста внутри ячейки, например стандартный зеленый #00B050.
2. Если на листе используется условное форматирование, то после вставки целевая ячейка исключается из диапазонов существующих условий условного форматирования.
| Код |
|---|
Sub insertText() sXml = Cells(1, 1).Value(xlRangeValueXMLSpreadsheet) sXml = Application.Trim(Replace$(Replace$(Replace$(sXml, vbCrLf, " "), vbLf, " "), vbCr, " ")) s = "Type=""String"" xmlns=""http://www.w3.org/TR/REC-html40"">" p = InStr(sXml, s) + Len(s) sXml = Left(sXml, p - 1) & "<Font html:Color=""#000000"">4. Обычный текст </Font>" & Mid(sXml, p, 32768) Cells(1, 1).Value(xlRangeValueXMLSpreadsheet) = sXml End Sub |
ОГРОМНОЕ СПАСИБО: Alec Perle (Решение1), БМВ (Решение 2), Jack Famous (комментарий про MID) и конечно автору - ZVI.
Результат того, что мне было нужно в ответе #27.
Изменено: - 18.10.2019 09:41:35