Копирование нескольких листов одновременно для сохранения ссылок на диаграммы - PullRequest
1 голос
/ 22 апреля 2009

Я создал шаблон из двух листов в Excel - первый лист предназначен для красивых диаграмм, а другой - для данных, которые управляют этими диаграммами. Я написал приложение vb.net 2005, которое может выгружать все мои данные на второй лист, и лист диаграммы обновляется идеально.

Я бы хотел сделать этот отчет несколько раз в одной и той же книге. (Таким образом, на вкладках будут отображаться «Персона1 - Диаграмма», «Персона1 - Данные», «Персона2 - Диаграмма», «Персона2 - Данные» и т. Д.)

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

Есть ли способ скопировать листы в парах, поддерживая связь с самим собой, а не с родителем?

Ответы [ 3 ]

2 голосов
/ 22 апреля 2009

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

В VBA:

Sheets(Array("Chart template", "Data template")).Select
ActiveWindow.SelectedSheets.Copy After:=Sheets("Data template")

В Interop:

App.ActiveWorkbook.Sheets(New String()
        {"Chart template", "Data template"}).Select()
App.ActiveWindow.SelectedSheets.Copy(After:=
        App.ActiveWorkbook.Sheets("Data template"))
0 голосов
/ 22 апреля 2009

Вы можете исправить ссылки в таблице после копирования.

Использовать метод SetSourceData

ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A3:D7")
0 голосов
/ 22 апреля 2009

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

В зависимости от объема данных, которые вы используете, это может быть не идеальным решением, но это то, как я справился с этой проблемой.

...