У меня есть код VBA, который берет существующие гистограммы в Excel, фильтрует определенные значения горизонтальной оси (годы) и вставляет их в PowerPoint.Например, для каждой диаграммы под названием «Совокупный доход (услуги)» в нескольких рабочих книгах необходимо отображать только 2014, 2015 и 2018. В настоящее время это выполняется следующим образом:
If Chart.Chart.ChartTitle.Text = "Total Income (Services)" Then
Chart.Chart.ChartGroups(1).FullCategoryCollection(1).IsFiltered = True '2012
Chart.Chart.ChartGroups(1).FullCategoryCollection(2).IsFiltered = True '2013
Chart.Chart.ChartGroups(1).FullCategoryCollection(5).IsFiltered = True '2016
Chart.Chart.ChartGroups(1).FullCategoryCollection(6).IsFiltered = True '2017
Проблема заключается в том, что все диаграммы«Общий доход (услуги)» может включать разные даты и может меняться от месяца к месяцу в зависимости от исходных данных.Поэтому иногда нет «2012», поэтому фильтрация первого элемента фактически удаляет «2013», а остальная часть графика некорректна.
Как динамически перейти на VBA, который я хочу сохранить только [2014, 2015, 2017]?
Кроме того, я предполагаю, что могу определить, какие годы доступны для данной таблицы, и отфильтровать те, которые мне не нужны;например, если я знаю, что определенный источник данных содержит [2013, 2014, 2015, 2016, 2018], то я знаю, что мне нужно отфильтровать [2013, 2016, 2018], то есть FullCategoryCollections [1, 4, 5].Это единственный способ?Или есть способ фильтрации по имени оси?