Как автоматически расширить диапазон диаграммы с помощью VBA?

Структура моего документа показана на изображении ниже. Я хочу построить график временной шкалы из столбцов A (исключая ячейку A1, для диаграммы очень важно, чтобы эта конкретная ячейка не была включена), B и D. Я ищу способы сделать динамику диаграммы с помощью VBA, чтобы новый события, добавленные пользователем, будут автоматически отображаться на диаграмме без необходимости вручную изменять диапазон диаграммы.

Диапазон не должен изменяться мгновенно / непрерывно – до тех пор, пока он изменяется, когда макрос за кнопкой «Создать новый просмотр событий» щелкнут. Когда у пользователя больше событий для добавления в таблицу, она может просто добавлять события в таблицу, а также создавая новую таблицу и удаляя старую, у нее также будет обновленная диаграмма.

Вопрос в том, как это сделать?

введите описание изображения здесь

Вам не нужен VBA, чтобы сделать диаграмму динамической. Просто создайте динамические именованные диапазоны, которые растут и сжимаются с данными. Ваш VBA для диаграммы может ссылаться на этот именованный диапазон, не добавляя нагрузки на код. Но вам даже не понадобится VBA. Диаграмма, определенная динамическими диапазонами, будет обновляться мгновенно. Не требуется код.

Название диапазона и формула для ярлыков диаграмм:

chtLabels =Events!A2:Index(Events!$A:$A,counta(Events!$A:$A)) 

Название диапазона и формула для столбца B

 chtBegin =offset(chtlabels,0,1) 

Диапазон и формула для столбца D

 chtDuration =offest(chtlabels,0,3) 

Отредактируйте источник данных и вместо диапазонов фиксированных ячеек введите именованные диапазоны в формате

 =Events!*RangeName* 

Вам необходимо указать соответствующее имя диапазона для значений серии и оси категории диаграммы.

Примечание. Когда вы указываете имена динамических диапазонов в качестве источника диаграммы, вы ДОЛЖНЫ включать либо имя файла, либо имя листа с ссылкой на название диапазона. Когда вы закроете и заново откроете диалоговое окно, вы обнаружите, что Excel автоматически преобразует вашу запись в формат [Filename]RangeName

Примечание 2: существует множество различных вариантов формул для создания имен динамических диапазонов. В этом случае мы используем и индексируем столбец A и определяем последнюю заполненную ячейку, подсчитывая ячейки. Это работает только в том случае, если все ячейки в столбце A имеют текст. Если ваши данные имеют пробелы в столбце A (что, как я думаю, вы не думаете), для определения диапазона могут применяться различные формулы.

  1. Преобразование диапазона в таблицу.
  2. Выберите Любая ячейка в диапазоне.
  3. Затем нажмите Ctrl+L Это превратит ваш диапазон в таблицу

Затем вы можете отформатировать его и щелкнуть правой кнопкой мыши по нему и вставить диаграмму. Это позволит вам добавлять строки или столбцы. Даже добавьте столбцы формул, которые также автоматически заполнится для вас. Вы также можете настроить формулы, которые используют динамические диапазоны, относящиеся к этой строке, вызывать столбец по имени. Используйте заголовки / Данные. Получите итоговые значения. Это позволит обеспечить большую гибкость.

  • Excel создает диаграмму из нескольких книг с фильтром между датами
  • ChartObjects («Диаграмма»). Высота Создание повторяющейся диаграммы
  • VBA Excel: создавать графики для уникальных значений из гибких диапазонов для нескольких листов
  • Частично отсутствующие линии сетки на диаграммах логарифмической шкалы в Excel 2007
  • Excel: как переключить строку / столбец в сводной диаграмме, но не в сводной таблице
  • Цвет линии / цвета маркерной линии Excel VBA
  • Дата Gnuplot по оси x и отсутствующие данные
  • Excel: ссылки на график как ChartObjects & Chart vs Shapes
  • Добавить данные диаграммы из других рабочих книг в одну серию с помощью VBA - Excel 2007
  • Нужно сделать набор графиков в excel с помощью макроса vba
  • часть диаграммы области не заполнена vba
  • Давайте будем гением компьютера.