Как создать набор бессвязных диаграмм

Что делает макрос: Если вам необходимо скопировать диаграммы из книги и вставить их в другом месте (другой рабочей книге, PowerPoint, Outlook и т.д.), лучше отключить их от исходных данных источника. Таким образом, вы не будете получать раздражающие сообщения от Excel. Этот макрос копирует все диаграммы в активном
листе, вставляет их в новую книгу, и отключает их от исходных данных источника.

Как макрос работает

Этот макрос использует метод ShapeRange.Group, чтобы сгруппировать все диаграммы на активном листе в одну форму. После того, как диаграммы сгруппированы, мы копируем группу, и вставляем ее в новую книгу. Затем мы используем метод BreakLink, чтобы удалить ссылки на данные источника.

Код макроса

Sub SozdatNaborDiagramm()
'Шаг 1: Объявляем переменные
Dim wbLinks As Variant
'Шаг 2: Сгруппируйте диаграммы, скопируйте группу, а затем 'разгруппируйте
With ActiveSheet.ChartObjects.ShapeRange.Group
.Copy
.Ungroup
End With
'Шаг 3: Вставить в новую книгу и разгруппировать
Workbooks.Add.Sheets(1).Paste
Selection.ShapeRange.Ungroup
'Шаг 4: Разорвать ссылки
wbLinks = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
ActiveWorkbook.BreakLink Name:=wbLinks(1), _
Type:=xlLinkTypeExcelLinks
End Sub

Как этот код работает

  1. Шаг 1 объявляет переменную вариант wbLinks. Макрос использует его в шаге 4, чтобы передать ссылку на источник при разрыве связей.
  2. Шаг 2 использует ChartObjects.ShapeRange.Group для сгруппировки всех диаграмм в единую форму. Макрос копирует группы, в буфер обмена. После того как группа копируется, макрос разгруппировывает диаграммы.
  3. Шаг 3 создает новую рабочую книгу и вставляет скопированную группу на Лист1. После того, как группа была вставлена, мы можем разгруппировать так, чтобы каждая диаграмма была отдельно.
  4. Шаг 4 захватывает ссылку на источник в переменной wbLinks. Макрос Excel говорит разорвать связь.

Обратите внимание, что так как этот метод преобразует исходный график ссылки на формулу массива, этот метод может потерпеть неудачу, если ваш график содержит слишком много точек данных. Сколько это слишком много? Это индивидуально для каждого компьютера, так как ограничено памятью.

Как использовать

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.
Оцените статью
Добавить комментарий