Визуальная сводная диаграмма
Я пытаюсь отредактировать сводную диаграмму так, чтобы ее метки данных уменьшались при необходимости (т.е. 6-значные числа делятся на 1000), что требуетдобавление пользовательских меток из диапазона ячеек к числу, чтобы показать, что оно масштабировано.Например, число, изначально равное 800 000, будет преобразовано в 800 в сводной таблице с помощью настраиваемой серии формул, а затем другая ячейка с формулой определит, масштабировано ли это, и покажет «M» (для мили), если оноИмеет.
Статически я могу выполнить это без VBA, просто установив флажок «Значение из ячеек» в дополнение к полю «Значение» при форматировании меток данных.Тем не менее, при изменении представления, как я должен делать постоянно, сбрасывается ссылка, которую я сделал при проверке «Value from Cells».Кроме того, мои ярлыки часто возвращаются к тому, чтобы быть бесцветными и меньше, чем я их сделал.Поэтому я чувствую, что мне нужно создать макрос, который будет обновлять мои метки данных для включения поиска диапазона и изменения размера при каждом изменении таблицы.Мой код для этой цели приведен ниже.
Dim numSubs As Integer
Dim Labels As Range
numSubs = 7 'find a way to count number of active series
For i = 1 To numSubs
With Sheet16.ChartObjects("Chart 2").SeriesCollection(i).DataLabels
.ShowRange = False
.Format.TextFrame2.TextRange. _
InsertChartField msoChartFieldRange, "='New PC Mapping'!$I$32:$I$34", 0 'find a way to cycle thru ranges
.Format.TextFrame2.TextRange.Font.Bold = msoTrue
.Format.TextFrame2.TextRange.Font.Size = 14
End With
Next
Во-первых, VBA говорит мне, что я не могу запустить SeriesCollection на своем графике, что является методом, показанным во всех примерах, которые я прочитал.Я понятия не имею, в чем суть проблемы.Я проверил, что он может идентифицировать Sheet16.ChartObjects ("Chart 2")
Во-вторых, мне нужно найти способ циклически проходить через несколько диапазонов, поскольку у каждой серии есть свои.Моя строка кода здесь - от записи макроса, потому что я не мог найти код для выполнения этого где-либо онлайн, поэтому я уверен, что его можно улучшить, но в текущей форме он принимает строку формулы, что затрудняетдля перемещения с Range.Offset, например.
Оттуда, я знаю, как вызвать его, когда сводная таблица адресована.Мне просто нужна помощь, чтобы заставить его работать только над одной серией, и я могу обобщить.Спасибо!