У меня есть сводная диаграмма, которая обычно показывает 6-8 серий из возможных 15, многие из которых, как правило, равны нулю. Таким образом, каждый раз, когда он обновляется, у него есть 15 серий, и легенда должна только перечислить серию с ненулевыми цифрами, чтобы диаграмма была лаконичной и легкой для чтения.
Я пытаюсь использовать VBA для удаления конкретных элементов, где серия все ноль (максимальное значение = 0), и возникло больше проблем, чем ожидалось:
-
Я перебираем каждый элемент из графика FullSeriesCollection, проходя вперед по списку серий один за другим. Однако, поскольку легенда является отдельным объектом из серии,вы не можете использовать текущую серию из моего цикла, чтобы обратиться к нему, и поэтому требуется счетчик цикла.
-
нет способа узнать имя/значение элемента LegendEntries, так что вы должны соответствовать серии с легендой, не будучи в состоянии подтвердить что LegendEntries элемент, который.
(по-видимому, ниже функция присутствует в Excel 2007 и далее?)
-
похоже, что объект FullSeriesCollection упорядочивает элементы (разумно) от 1 до 13 по мере прохождения, но объект LegendEntries упорядочивает элементы в обратном порядке, от
13 К 1. -
объект LegendEntries начинает свой индекс с 0, поэтому его предметы на самом деле от 12 до 0.
-
В LegendEntries объект пере-числил его элементов по мере их удаления от нее.
Поэтому при удалении элемента 1 все элементы в списке нумеруются от 11 до 0. -
мне нужно обновлять график каждый раз, когда сводная таблица обновляется, чтобы повторно захватить все удаленные элементы легенды, которые теперь могут быть ненулевыми.
в свете этих осложнений, Я действительно изо всех сил пытался удалить конкретные элементы, которые мне нужно удалить из диаграммы.
как вы эффективно цикл через элементы сводной таблицы и удалить соответствующие серии LegendEntries, где элементы все-ноль?