Я пытаюсь добавить много серий в диаграмму, используя VBA, как показано в коде ниже.
For i = 0 To 9
Set serNew = chtMap.SeriesCollection.NewSeries
With serNew
.XValues = Range("Y4").Cells(1, 1 + 2 * i).Resize(32000, 1)
.Values = Range("Y4").Cells(1, 2 + 2 * i).Resize(32000, 1)
End With
Next i
Диапазоны для некоторых серий еще не имеют данных в своих ячейках; пользователь запишет / загрузит эти данные позже. Идея состоит в том, чтобы иметь диаграмму, готовую к тому, когда они делают.
Проблема : когда цикл достигает такого еще пустого диапазона, я получаю ошибку 1004: Невозможно установить свойство XValues класса Series. Почему и есть ли способ обойти это?
Странно то, что делать это вручную в меню Chart -> | Source Data ... работает отлично. На самом деле, если вы записываете макрос при этом вручную, результат будет следующим:
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(4).XValues = "=Sheet2!R4C31:R32003C31"
ActiveChart.SeriesCollection(4).Values = "=Sheet2!R4C32:R32003C32"
но тогда Excel выдает ошибку при повторном воспроизведении этого макроса!
Выполнение этого вручную не является приятной перспективой. Я полагаю, что я могу вставить ложные данные в ячейки, создать серию и затем удалить ложные данные. Неужели мне нужно вытянуть такую наживку и включить Excel?