Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Проверить существование графика не диаграмме - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Проверить существование графика не диаграмме (Макросы/Sub)
Проверить существование графика не диаграмме
rever27 Дата: Среда, 29.07.2015, 12:39 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Как можно узнать, если ли определенный график на диаграмме?

[vba]
Код
If ActiveChart.SeriesCollection("RelativeDD") Is Empty Then
[/vba]

Что то на подобие, только рабочее )
Нужно именно конкретное имя, поэтому .SeriesCollection.Count не подходит


Сообщение отредактировал rever27 - Среда, 29.07.2015, 12:40
 
Ответить
СообщениеКак можно узнать, если ли определенный график на диаграмме?

[vba]
Код
If ActiveChart.SeriesCollection("RelativeDD") Is Empty Then
[/vba]

Что то на подобие, только рабочее )
Нужно именно конкретное имя, поэтому .SeriesCollection.Count не подходит

Автор - rever27
Дата добавления - 29.07.2015 в 12:39
_Boroda_ Дата: Среда, 29.07.2015, 12:46 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
    On Error Resume Next
      ActiveChart.SeriesCollection("RelativeDD").Select
      If Err.Number Then MsgBox "Листа RelativeDD на диаграмме нет"
      On Error GoTo 0
[/vba]
или вторую строку так
[vba]
Код
nn = ActiveChart.SeriesCollection("RelativeDD").Name
[/vba]
Или еще как-то. Принцип - дернуть этот ряд, если дернется, то все нормально, если ошибка, то такого ряда нет


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
    On Error Resume Next
      ActiveChart.SeriesCollection("RelativeDD").Select
      If Err.Number Then MsgBox "Листа RelativeDD на диаграмме нет"
      On Error GoTo 0
[/vba]
или вторую строку так
[vba]
Код
nn = ActiveChart.SeriesCollection("RelativeDD").Name
[/vba]
Или еще как-то. Принцип - дернуть этот ряд, если дернется, то все нормально, если ошибка, то такого ряда нет

Автор - _Boroda_
Дата добавления - 29.07.2015 в 12:46
rever27 Дата: Среда, 29.07.2015, 12:49 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
_Boroda_, Боюсь, как бы этот On Error не распростанился на другую часть кода.
Нужна проверка на существование графика, и если его нет - создать.

[vba]
Код
If ActiveChart.SeriesCollection("RelativeDD") Is Nothing Then ActiveChart.SeriesCollection.NewSeries.Name = "RelativeDD"
[/vba]
 
Ответить
Сообщение_Boroda_, Боюсь, как бы этот On Error не распростанился на другую часть кода.
Нужна проверка на существование графика, и если его нет - создать.

[vba]
Код
If ActiveChart.SeriesCollection("RelativeDD") Is Nothing Then ActiveChart.SeriesCollection.NewSeries.Name = "RelativeDD"
[/vba]

Автор - rever27
Дата добавления - 29.07.2015 в 12:49
_Boroda_ Дата: Среда, 29.07.2015, 12:55 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Боюсь, как бы этот On Error не распростанился на другую часть кода.
А вот это зачем?
On Error GoTo 0

Как раз прекращает свободный пропуск ошибок. Кстати, строки 3 и 4 лучше местами поменять.
Нужна проверка на существование графика, и если его нет - создать.
Давайте определимся, про что мы говорим - график или ряд? Судя по коду - ряд в графике. Тогда
[vba]
Код
    On Error Resume Next
     nn = ActiveChart.SeriesCollection("RelativeDD").Name
     On Error GoTo 0
     If Err.Number Then ActiveChart.SeriesCollection.NewSeries.Name = "RelativeDD"
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Боюсь, как бы этот On Error не распростанился на другую часть кода.
А вот это зачем?
On Error GoTo 0

Как раз прекращает свободный пропуск ошибок. Кстати, строки 3 и 4 лучше местами поменять.
Нужна проверка на существование графика, и если его нет - создать.
Давайте определимся, про что мы говорим - график или ряд? Судя по коду - ряд в графике. Тогда
[vba]
Код
    On Error Resume Next
     nn = ActiveChart.SeriesCollection("RelativeDD").Name
     On Error GoTo 0
     If Err.Number Then ActiveChart.SeriesCollection.NewSeries.Name = "RelativeDD"
[/vba]

Автор - _Boroda_
Дата добавления - 29.07.2015 в 12:55
rever27 Дата: Среда, 29.07.2015, 15:38 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Да, я говорил про Ряд.

Спасибо, работает в таком варианте 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 - Среда, 29.07.2015, 15:38
 
Ответить
СообщениеДа, я говорил про Ряд.

Спасибо, работает в таком варианте 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
Дата добавления - 29.07.2015 в 15:38
_Boroda_ Дата: Среда, 29.07.2015, 17:24 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Вы почти его добили
[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
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВы почти его добили
[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
[/vba]

Автор - _Boroda_
Дата добавления - 29.07.2015 в 17:24
rever27 Дата: Среда, 29.07.2015, 17:42 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
_Boroda_, не работает (
Точнее, при отсутствии ряда, он его создает, но если даже ряд и есть, то возникает ошибка -2147352571 (80020005) и создается новый ряд с именем Ряд ..

Возможно Array реагирует только на числовые значения?


Сообщение отредактировал rever27 - Среда, 29.07.2015, 19:39
 
Ответить
Сообщение_Boroda_, не работает (
Точнее, при отсутствии ряда, он его создает, но если даже ряд и есть, то возникает ошибка -2147352571 (80020005) и создается новый ряд с именем Ряд ..

Возможно Array реагирует только на числовые значения?

Автор - rever27
Дата добавления - 29.07.2015 в 17:42
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Проверить существование графика не диаграмме (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!