Я хочу изменить код в this answer, чтобы вместо увеличения диапазона на единицу оно уменьшало диапазон на единицу. Есть идеи, как это сделать?VBA: Уменьшение диапазона данных диаграммы
Sub ChangeChartRange()
Dim i As Integer, r As Integer, n As Integer, p1 As Integer, p2 As Integer, p3 As Integer
Dim rng As Range
Dim ax As Range
'Cycles through each series
For n = 1 To ActiveChart.SeriesCollection.Count Step 1
r = 0
'Finds the current range of the series and the axis
For i = 1 To Len(ActiveChart.SeriesCollection(n).Formula) Step 1
If Mid(ActiveChart.SeriesCollection(n).Formula, i, 1) = "," Then
r = r + 1
If r = 1 Then p1 = i + 1
If r = 2 Then p2 = i
If r = 3 Then p3 = i
End If
Next i
'Defines new range
Set rng = Range(Mid(ActiveChart.SeriesCollection(n).Formula, p2 + 1, p3 - p2 - 1))
Set rng = Range(rng, rng.Offset(0, 1))
'Sets new range for each series
ActiveChart.SeriesCollection(n).Values = rng
'Updates axis
Set ax = Range(Mid(ActiveChart.SeriesCollection(n).Formula, p1, p2 - p1))
Set ax = Range(ax, ax.Offset(0, 1))
ActiveChart.SeriesCollection(n).XValues = ax
Next n
End Sub
Использование Джон Walkenbachs [класс модуль] (http://spreadsheetpage.com/index.php/tip/a_class_module_to_manipulate_a_chart_series/) подход. Не удалось выполнить код выше моего типа диаграммы. – brettdj
Вы только что отправили код из этого другого ответа ... Вы на самом деле пробовали что-нибудь? например попытаться понять, что он делает, и попробовать изменить его самостоятельно? –
Да, я сделал попытку изменить код, чтобы уменьшить диапазон на 1 столбец. Я буду более конкретным в том, чтобы документировать это в будущем. Урок выучен. Первоначальный кодер предоставил ответ ниже. – Bryan