Скопировать лист Calc в другой документ "1 в 1"

Автор timal1234, 30 января 2026, 13:38

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

timal1234

Всем привет!

подскажите, как скопировать лист Calc в другой документ с тем же масштабом и шириной столбцов, что у источника,
и чтобы кнопки (привязанные к ячейкам) не "уезжали" ?

я использовал:
oDocDestination.Sheets.importSheet (ThisComponent, SheetName_to_Copy,  oDocDestination.Sheets.Count)   ' после последнего листано масштаб вставленного листа устанавливается не такой и ширина столбцов тоже меняется и кнопки уезжают.
Синхронизация листов у меня отключена.

на листе-источнике масштаб 90%, на вставленном 89% и ширина столбцов не такая.
если кнопки привязать к странице, то кнопки не уезжают.... но где-то мне надо было сделать привязку кнопки именно к ячейке...

нельзя как-то скоприровать "1 в 1" без танцев с бубном (без копирования ширины столбцов и т.д.) ?

sokol92

Выгрузите, пожалуйста, пример проблемного файла.
Владимир.

timal1234

#2
Цитата: sokol92 от 30 января 2026, 16:31Выгрузите, пожалуйста, пример проблемного файла.
Вот источник.
Хочу скопировать лист "ВЭ" по кнопке "Copy Sheet" (на листе "CHANGE_List").
При запуске макроса выводится запрос на ввод имени копируемого листа.
Далее указывается файл, куда вставить лист (я создавал заранее новый файл с пустыми листами и указывал его).

окончательная задача скопировать макросом любой лист "1 в 1" 

sokol92

#3
Похоже, проблема не в макросе.

Если скопировать лист "ВЭ" в новый документ (через контекстное меню ярлычка листа), то лист заметно искажается - ширины столбцов, шрифты в ячейках (I3, ...).

Мои эксперименты показывают, что проблема может быть в стиле ячеек по умолчанию. Если до операции копирования в целевом документе свойства стиля ячеек по умолчанию такие же, как свойства стиля по умолчанию в исходном документе, то лист копируется без заметных искажений.

Думаю, это баг, о котором следует сообщить.
Владимир.

timal1234

#4
Цитата: sokol92 от 30 января 2026, 18:53Если скопировать лист "ВЭ" в новый документ (через контекстное меню ярлычка листа), то лист заметно искажается
поэтому и стал писать макрос.

Цитата: sokol92 от 30 января 2026, 18:53Думаю, это баг, о котором следует сообщить.
да уж....
неужели никто не замечал этого раньше ?
по-моему, такое поведение тянется ещё как минимум с версии 6.

был у меня где-то кусок кода для конкретного листа, где при коприровании этого листа копировались ширина нужных мне столбцов, высота строк, кнопки и т.д ....
ну совсем не охота оптимизировать его для любой вкладки с любым количеством строк и столбцов...
хотелось что-то попроще ...  :'(

подскажите, а как тогда скопировать (узнать в макросе) масштаб листа-источника?

sokol92

Цитата: timal1234 от 30 января 2026, 19:04неужели никто не замечал этого раньше ?
Свойства стиля ячеек по умолчанию ("Default") далеко не все пользователи меняют, а если меняют, то обычно сохраняют шаблон документа (с измененным стилем Default), на основе которого создаются новые документы.
Если Вы так поступите, то листы, вероятно, будут копироваться без искажений.

Цитата: timal1234 от 30 января 2026, 19:04подскажите, а как тогда скопировать (узнать в макросе) масштаб листа-источника?
См. свойства ZoomValue и ZoomType контроллера документа.
Владимир.

timal1234

Цитата: sokol92 от 30 января 2026, 19:36См. свойства ZoomValue и ZoomType контроллера документа.
Спасибо! посмотрю.

Цитата: sokol92 от 30 января 2026, 19:36Свойства стиля ячеек по умолчанию ("Default") далеко не все пользователи меняют,
а почему при копировании листа в пределах одного документа (у меня) искажения не происходит ?
вроде копирует "1 в 1" ...

sokol92

Внутри одного документа стиль ячеек по умолчанию (Default) один и тот же (стиль принадлежит документу, а не листу).
Владимир.

timal1234

#8
Цитата: sokol92 от 30 января 2026, 19:42Внутри одного документа стиль ячеек по умолчанию (Default) один и тот же (стиль принадлежит документу, а не листу).
ну изначально я хотел вставить лист в документ, который был сделан из источника
(по идее стиль Default у этих файлов должен быть один и тот же.... или нет?).
сейчас попробовал:
скопировал источник под другим именем, удалил оттуда лист "ВЭ", указал его как файл-назначение....
в результате - кнопки убежали, ширина столбцов на месте....

как я вижу, один из самых простых вариантов (для моего случая) - привязать кнопки к странице, а потом копировать.

второй вариант - это доработать имеющийся кусок кода с копированием ширины столбцов, высоты строк, кнопок и т.д.,
но для этого ещё надо понять, какое количество строк/столбцов учитывать при копировании. 

sokol92

Цитата: timal1234 от 30 января 2026, 19:50скопировал источник с другим именем, удалил оттуда лист "ВЭ", указал его как файл-назначение....
Так и я так делал (см. вложенный файл Шаблон_1.ods).
При копировании листа "ВЭ" из файла "Источник_1.ods" в "Шаблон_1.ods" через контекстное меню листа я не вижу отличий оригинала и копии (в том числе, положения кнопок).
Владимир.

timal1234

Цитата: sokol92 от 30 января 2026, 20:01При копировании листа "ВЭ" из файла "Источник_1.ods" в "Шаблон_1.ods" через контекстное меню листа я не вижу отличий оригинала и копии (в том числе, положения кнопок).
да, если копирую (через контекстное меню листа) в ваш "Шаблон_1.ods" - всё ок.

а если копирую (через контекстное меню листа) в свою копию (макросы из файла НЕ удаляю, остальное делаю также)- кнопки уезжают  :roll:
если копирую (через контекстное меню листа) в свою копию (макросы из файла удаляю)- кнопки НЕ уезжают  :roll:

чудеса  :o

timal1234

Цитата: timal1234 от 30 января 2026, 20:15а если копирую (через контекстное меню листа) в свою копию (макросы из файла НЕ удаляю, остальное делаю также)- кнопки уезжают
похоже, что также ведёт себя и мой макрос

sokol92

Цитата: timal1234 от 30 января 2026, 20:15чудеса  :o
Никогда не верил в чудеса.

Вот файл Шаблон_1.ods, к которому добавлены Ваши макросы (Шаблон_2.ods). Не вижу аномалий.
Владимир.

timal1234

#13
во блин, теперь при копировании ( через контекстное меню листа) кнопки не уезжают (даже с моими файлами)....
но было же (см. вложение)...

починилось?

sokol92

Отладка - вещь не простая.

У меня сегодня при копировании листа из Вашего файла кнопки не разу не меняли своего положения. Так что пока я не могу воспроизвести последовательность действий, приводящих к искажению положения кнопок.
Владимир.