Я тоже сталкивался с той же проблемой. Из экспериментов я думаю, что происходит следующее:
Когда вы создаете новую диаграмму в VBA, используя следующий код
Dim chSheet As Chart
Set chSheet = Charts.Add
Excel, стараясь быть полезным, держу пари, автоматически просматривает любой лист, выбранный вашим курсором, когда вы выполняете код из окна разработчика, и ищет ближайший набор данных, который, по его мнению, может представлять собой диапазон значений для графика. Затем он автоматически заполняется на графике. Единственный способ обойти это, как я обнаружил, - это выполнить следующий код, чтобы удалить все объекты серии в объекте коллекции серий на диаграмме сразу после его создания. Сенсорный счетчик интуитивно понятен, но работает ...
Public Sub DeleteChartSeries(chartSheet As Chart)
'Shorter but perhaps less clean way of writing the code compared to below
Do Until chartSheet.SeriesCollection.Count = 0
chartSheet.SeriesCollection(1).Delete
Loop
'With chartSheet
' Do Until .seriesCollection.Count = 0
' .seriesCollection(1).Delete
' Loop
'End With
End Sub