Как соблюсти порядок элементов страницы при копировании ?

  • Автор темы Автор темы teatral
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

teatral

Участник
Топикстартер
Сообщения
350
Реакции
365
Копирую содержимое страницы в другой документ:

Код:
            For Each obj In FromDoc.Pages(1).pageitems
                Set obj1 = obj.Duplicate(ToDoc.Pages(1))
                Next obj

Но при этом последовательность наложения элементов друг на друга изменяется
Как сделать, чтобы был тот же порядок, что и на исходной странице?
 
Ответ: Как соблюсти порядок элементов страницы при копировании ?

Две мысли. Первая — цикл запустить с конца. Вторая — сгруппировать, скопировать, разгруппировать.
 
Ответ: Как соблюсти порядок элементов страницы при копировании ?

А специального поля разве нет, которое показывает порядок сортировки?
 
Ответ: Как соблюсти порядок элементов страницы при копировании ?

index

но через группу - намного проще
 
Ответ: Как соблюсти порядок элементов страницы при копировании ?

Две мысли. Первая — цикл запустить с конца. Вторая — сгруппировать, скопировать, разгруппировать.
Запустил цикл с конца - все сработало
 
Ответ: Как соблюсти порядок элементов страницы при копировании ?

А как скопировать страницу, если в документе несколько слоев?
Ведь у объекта Layer нет свойства Pages
 
Ответ: Как соблюсти порядок элементов страницы при копировании ?

А какая разница? Есть же allPageItems
 
Ответ: Как соблюсти порядок элементов страницы при копировании ?

Да и просто page.duplicate() хоть внутри документа, хоть в новый, всё как надо копируется. Что у Вас не получилось?
 
Ответ: Как соблюсти порядок элементов страницы при копировании ?

Да и просто page.duplicate() хоть внутри документа, хоть в новый, всё как надо копируется. Что у Вас не получилось?
Видимо неправильно делаю, такой код не срабатывает:
Код:
Set PageNewDoc = FromDoc.Pages(1).Duplicate(ToDoc)
 
Ответ: Как соблюсти порядок элементов страницы при копировании ?

На java это выглядит так:
Код:
curPage.duplicate(LocationOptions.AFTER,doc1.pages[0]);
Сработает ли на VBA, не подскажу.
 
Ответ: Как соблюсти порядок элементов страницы при копировании ?

А какая разница? Есть же allPageItems

Для перебора всех элементов PageItems в одном и том же документе в одних случаях должен быть перебор от первого элемента к последнему в других от последнего к первому (видимо в зависимости от последовательности вставки верстальщиком)

На java это выглядит так:
Код:
curPage.duplicate(LocationOptions.AFTER,doc1.pages[0]);
Сработает ли на VBA, не подскажу.

Работает! Я просто упустил первый аргумент (LocationOptions.AFTER), посчитал, что метод Page.duplicate имеет те же аргументы, что и для многих других объектов
 
Ответ: Как соблюсти порядок элементов страницы при копировании ?

в одних случаях должен быть перебор от первого элемента к последнему в других от последнего к первому (видимо в зависимости от последовательности вставки верстальщиком)
Вовсе не поэтому, а потому что при дублировании они вносятся в тот же список allPageItems. Но ведь вы ж все равно на другую страницу копируете - тут такой проблемы быть не должно. Хотя, конечно, проще всю страницу сразу сдублировать.
 
Статус
Закрыто для дальнейших ответов.