Нужна проверка на существование графика, и если его нет - создать.
Давайте определимся, про что мы говорим - график или ряд? Судя по коду - ряд в графике. Тогда [vba]
Код
On Error Resume Next nn = ActiveChart.SeriesCollection("RelativeDD").Name On Error GoTo 0 If Err.Number Then ActiveChart.SeriesCollection.NewSeries.Name = "RelativeDD"
Нужна проверка на существование графика, и если его нет - создать.
Давайте определимся, про что мы говорим - график или ряд? Судя по коду - ряд в графике. Тогда [vba]
Код
On Error Resume Next nn = ActiveChart.SeriesCollection("RelativeDD").Name On Error GoTo 0 If Err.Number Then ActiveChart.SeriesCollection.NewSeries.Name = "RelativeDD"
On Error Resume Next nn = ActiveChart.SeriesCollection("RelativeDD").Name If Err.Number Then ActiveChart.SeriesCollection.NewSeries.Name = "RelativeDD" On Error GoTo 0
[/vba]
А если нужно проверить 3 ряда, а не один? 3 раза писать, или можно как то через цикл? [vba]
Код
On Error Resume Next For Each k In Array("RelativeDD", "MaxDD" ) iSeriesErr = .SeriesCollection(k).Name If Err.Number Then MsgBox k: .SeriesCollection.NewSeries.Name = k Next On Error GoTo 0
[/vba] Но мой вариант, как всегда не работает ))
Да, я говорил про Ряд.
Спасибо, работает в таком варианте 3 и 4 строки
[vba]
Код
On Error Resume Next nn = ActiveChart.SeriesCollection("RelativeDD").Name If Err.Number Then ActiveChart.SeriesCollection.NewSeries.Name = "RelativeDD" On Error GoTo 0
[/vba]
А если нужно проверить 3 ряда, а не один? 3 раза писать, или можно как то через цикл? [vba]
Код
On Error Resume Next For Each k In Array("RelativeDD", "MaxDD" ) iSeriesErr = .SeriesCollection(k).Name If Err.Number Then MsgBox k: .SeriesCollection.NewSeries.Name = k Next On Error GoTo 0
[/vba] Но мой вариант, как всегда не работает ))rever27
Сообщение отредактировал rever27 - Среда, 29.07.2015, 15:38
On Error Resume Next For Each k In Array("RelativeDD", "MaxDD") iSeriesErr = .SeriesCollection(k).Name If Err.Number Then MsgBox k: .SeriesCollection.NewSeries.Name = k: Err.Clear Next On Error GoTo 0
[/vba]
Вы почти его добили [vba]
Код
On Error Resume Next For Each k In Array("RelativeDD", "MaxDD") iSeriesErr = .SeriesCollection(k).Name If Err.Number Then MsgBox k: .SeriesCollection.NewSeries.Name = k: Err.Clear Next On Error GoTo 0
_Boroda_, не работает ( Точнее, при отсутствии ряда, он его создает, но если даже ряд и есть, то возникает ошибка -2147352571 (80020005) и создается новый ряд с именем Ряд ..
Возможно Array реагирует только на числовые значения?
_Boroda_, не работает ( Точнее, при отсутствии ряда, он его создает, но если даже ряд и есть, то возникает ошибка -2147352571 (80020005) и создается новый ряд с именем Ряд ..
Возможно Array реагирует только на числовые значения?rever27
Сообщение отредактировал rever27 - Среда, 29.07.2015, 19:39