перенос строки в ячейке Calc и вставка в таблицу Writer

Автор timal1234, 9 февраля 2026, 12:02

0 Пользователи и 1 гость просматривают эту тему.

timal1234

Всем привет !

подскажите, как правильно сделать макросом перенос строки в ячейке Calc, чтобы после копирования этой ячейки из Calc и вставки в таблицу Writer (через Shift+Ctrl+V "только текст")  этот текст переносился на следующую строку (см. рис. 02, вторая строка)....
пробовал и CHR(10) и CHR(13) и добавлял vbCrLf.... а в итоге получается как на рис. 02 (первая строка).

однако если вручную набрать текст в ячейке с использованием Shift+Enter - то копируется нормально (рис. 02, вторая строка)

economist

Через Shift+Ctrl+V символы CHR(10), CHR(13) он же vbCrLf - не пройдут. Вставляйте другими способами (HTML/RTF, например). Связывать по DDE нельзя - передается по связи только видимый текст. Но можно изменить верстку и набрать в разных строчках. 
Пить не буду коньяка - читану Питоньяка!

timal1234

#2
 
ЦитироватьВставляйте другими способами (HTML/RTF, например).
попробую

ЦитироватьНо можно изменить верстку и набрать в разных строчках.
не хотелось бы... теряется идентичность.

а почему, когда вручную набрана ячейка, копирование нормально проходит ?
 
таких методов , аналогичных Shift+Enter , для макросов нет  ?

sokol92

Цитата: timal1234 от  9 февраля 2026, 12:16таких методов , аналогичных Shift+Enter , для макросов нет  ?
Давайте вместе проверять.
Выделяем одну ячейку в Calc и выполняем макрос:
Sub Test()
  ThisComponent.CurrentSelection.String = "Str1" & Chr(10) & "Str2" & Chr(10) & "Str3"
End Sub

Далее, копируем ячейку и вставляем в документ Writer. У меня вставляется с переносами строк.
Владимир.

timal1234

да так работает....
но у меня в макросе ещё табуляция перед каждой строкой, и ячейка объединена из 7 столбцов, и установлены внешние границы видимыми, и шрифт Gost Type A (см. рис. 04).

попробовал добавить в ваш кусок CHR(9):
Sub Test()
  ThisComponent.CurrentSelection.String = Chr(9) & "Str1" & Chr(10) & Chr(9) & "Str2" & Chr(10) & Chr(9) &  "Str3"
End Sub
если вставляю как "только текст" -  связка & Chr(10) & Chr(9) & превращается в знак # .
если вставляю как "HTML" - табуляция съедается, а после каждой строки значок типа "Enter"....

идеально подходит вставка как "Текст с форматированием (RTF)" (в конце строк Символ абзаца (¶)- как мне надо, чтоб потом выделить и применить нужный стиль)... [см. рис. 05]

но при копировании из моего (боевого) файла, вставка как "Текст с форматированием (RTF)" делает таблицу в таблице.... и плюс в конце строк значок типа "Enter"
приходится принудительно после каждй строки нажимать Enter, чтоб табуляция встала на место... [см. рис. 06]

как победить?



timal1234

#5
вот пытался в последнюю строку таблицы Writer повставлять....

sokol92

Чем меньше управляющих кодов (Unicode U+0000 - U+001F) Вы будете использовать, тем  надежнее.
Для чего Вам код табуляции?
Владимир.

timal1234

Цитата: sokol92 от 10 февраля 2026, 20:36Чем меньше управляющих кодов (Unicode U+0000 - U+001F) Вы будете использовать, тем  надежнее.
Для чего Вам код табуляции?
ну хотел чтоб "один в один" были лист Calc и документ Writer...
чтоб тот, кто копирует из Calc, знал, что там в примечании должна быть табуляция.

sokol92

Если возможно, замените знак табуляции на фиксированное число пробелов.
Конкретно со знаком табуляции связано много особенностей.
У меня заканчивается "окно возможностей" - постараюсь продолжить завтра.
Владимир.

timal1234

Цитата: sokol92 от 10 февраля 2026, 20:42Если возможно, замените знак табуляции на фиксированное число пробелов.
буду думать...Спасибо!

я не понимаю, почему при вставке как "Текст с форматированием (RTF)" из неформатированной ячейки Calc(после вашего макроса) - таблица в таблице не создаётся, а в моём случае - создаётся?

economist

Есть лишь один способ обеспечить полное виз. соотв-е, 1:1, для ODS в ODT в виде небольших "пятен", и это OLE. Но грабельки там всюду. Связь "с Олей" не порвать, файлы должны лежать рядом или быть доступны, могут быть интересные артефакты с привязками и обтеканием. Короче это та из многих штук в LO, которые напоминают минное поле и работать с которым суждено единицам самых крепких духом.

Странное поведение Буфера обмена часто связано со "следилками" или утилитами для него. Проверьте системный трей и все три места автозапуска. 
Пить не буду коньяка - читану Питоньяка!

sokol92

Вы, вероятно, знаете заранее, как именно будете вставлять из документа Calc в документ Writer какие-то определенные диапазоны ячеек.

1. Вставка планируется в (основной) текст документа.
  Есть ли здесь проблемы?

2. Вставка планируется в ячейку текстовой таблицы как вложенная таблица.
  • В документе Calc выделяем диапазон ячеек и копируем в буфер обмена
  • В документе Writer в контекстном меню ячейки текстовой таблицы выбираем пункт "Вставить как" / Вложенная таблица.
    Eсть ли здесь проблемы?
   


Владимир.

timal1234

#12
Цитата: sokol92 от 11 февраля 2026, 14:22Вы, вероятно, знаете заранее, как именно будете вставлять из документа Calc в документ Writer какие-то определенные диапазоны ячеек.
обычно копирую основную таблицу и просто через CTRL+V вставляю в первую ячейку таблицы Writer...
бывают глюки, приходится отмену жать или вообще переоткрывать документ Writer...
иногда после такой вставки Либре зависает намертво, приходится через диспетчер задач убивать процесс.

последнюю строку Примечания вставляю через SHIFT+CTRL+V как "только текст" опять же в последнюю ячейку таблицы Writer ....

Цитировать1. Вставка планируется в (основной) текст документа.
обычно вставляю в таблицу Writer. Вставлять в (основной) текст документа не пробовал.

Цитировать2. Вставка планируется в ячейку текстовой таблицы как вложенная таблица.
нет....
таблица в таблице не приветствуется :-))

timal1234

#13
Цитата: economist от 11 февраля 2026, 08:23Странное поведение Буфера обмена часто связано со "следилками" или утилитами для него.
да, есть у меня переключатель раскладки клавиатуры Punto Switcher, по идее он отслеживает буфер обмена...

mikekaganski

Цитата: timal1234 от 12 февраля 2026, 10:08может из-за него странное поведение при копировании ?
Такое предложение:
Вместо вопроса на форуме Вы делаете самостоятельно эксперимент по отключению (или даже удалению) Punto Switcher, а затем пишете что-то вроде "да, есть у меня переключатель раскладки клавиатуры Punto Switcher. Я его отключил - и проблема ушла", ну или "... и проблема осталась".
С уважением,
Михаил Каганский