У меня есть код, копирующий диапазон в определенную ячейку и меняющий источник данных на диаграмму. диаграмма имеет тип комбинированной диаграммы, которая имеет столбцы с накоплением и xlLineMarker
с последней серией (общий итог). Количество коллекций серий варьируется в зависимости от выбора пользователя (2 или более).
Это работает, но иногда диаграмма не обновляется полностью, как на прикрепленном изображении (отображает пустую диаграмму с названием серии как «серия1, серия2, ...»). Когда это происходит, щелкните правой кнопкой мыши диаграмму и щелкните «Выбрать данные», а затем просто выберите любую серию, кроме серии 1, чтобы обновить диаграмму. не обновлять или повторно назначать источник данных. просто выберите «series2» или другие в окнах выбора данных и нажмите «отмена», что, как я подозреваю, макрос не полностью выполнен...,
Я делаю что-то неправильно? или есть способ полностью обновить график?
Sub chtupdate()
Dim rng As Range
Dim i As Integer
Dim n As Integer
Set rng = Range("G37").CurrentRegion
ActiveSheet.ChartObjects("Chart1").Activate
With ActiveChart
.ChartArea.ClearContents
.SetSourceData Source:=rng, PlotBy:=xlRows
n = ActiveSheet.ChartObjects(1).Chart.SeriesCollection.Count
For i = 1 To n - 1
.SeriesCollection(i).ChartType = xlColumnStacked
Next i
.SeriesCollection(n).ChartType = xlLineMarkers
End With
End Sub
Activate
график (нет необходимости); 2) отключить обновление экрана во время макроса; 3) поскольку вы находитесь внутриWith clause
, заменитеn = ActiveSheet.ChartObjects(1).Chart.SeriesCollection.Count
на более простоеn = .SeriesCollection.Count
- person A.S.H   schedule 06.05.2017