Страницы: 1
RSS
Перестала работать конструкция Charts("FCh").SeriesCollection(1).Trendlines(1)
 
Больше трёх лет работал макрос прогнозирования с этой конструкцией. В ноябре 2010 выдал ошибку. Копаюсь в справке - никаких изменений не обнаружил. Кусок из макроса такой:  
   With Charts("FCh").SeriesCollection(1).Trendlines(1)  
       .DisplayEquation = True  
       x = Replace(.DataLabel.Text, "y = ", "", 1) 'тело формулы полинома "год назад"  
       .DisplayEquation = False  
   End With  
....дальше логика  
Кстати и Charts("FCh") тоже перестала работать. Пришлось через Set обходить. Что-то изменилось, а что - никак не нащупаю.
 
{quote}{login=The_Prist}{date=28.02.2011 05:43}{thema=}{post}А что за ошибка хоть? Это никак не поможет?  
<EM>http://www.excel-vba.ru/index.php?file=Tips_Macro_Cannot_Find_Library</EM>{/post}{/quote}  
 
Ошибка тривиальная и малоинформативная -    
Run-time error 9:  
Subscript out of range
 
У меня, по ходу, что-то глобальное поломалось, потому что попробовал сделал запись макроса простого действия - поиск значения в диапазоне ячеек. Пошаговый повтор этого макроса выдал ошибку №91 - "Object variable or With block variable not set".  
 
Sub Макрос3()  
 
Columns("H:H").Select  
Range("H66").Activate  
Selection.Find(What:="Март 2011", After:=ActiveCell, LookIn:=xlValues, _  
   LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _  
   MatchCase:=False, SearchFormat:=False).Activate  
End Sub  
 
Такого никогда не было.  
Вообще ошибки у меня начали выползать после того, как я возобновил автоматическое обновление системы. На данный момент у меня значится:  
Excel 2003 (11.6355.6505) SP1.    
VB 6.3 Version 9932 VBA: Retail 6.4.9972 Forms: 11.0.6254.  
Может быть здесь есть какое-то несоответствие...
 
Да, это не находит. Вы понимаете, если я вручную через Ctrl+F ищу "Март 2011", то находит. Но выполнение записи этого действия выдаёт ошибку.
 
Хорошо. Переделал. Работает поиск даты.  
А что же тогда с конструкциями  
Charts("FCh").SeriesCollection(1).Values = "..."  
и  
With Charts("FCh").SeriesCollection(1).Trendlines(1)  
   .DisplayEquation = True  
 
В обоих случаях выдаёт ошибку 9.  
Я подглядел здесь обход подобного случая средствами Set:  
Dim C As ChartObject  
Set C=Sheets("FCh").ChartObjects(1)  
C.Chart.SeriesCollection(1).Values = "..." 'стала работать  
но  
With С.Chart.SeriesCollection(1).Trendlines(1)  
   .DisplayEquation = True  
выдаёт ошибку 1004: "Невозможно получить свойство Trendlines класса Series"  
вот именно это я и не могу решить! Ничего нового в справке не нахожу.
 
Когда я писал макрос, а это было около 4-х лет назад, VB не позволил мне обратиться к диаграмме через worksheet. Получилось только тогда, когда я добавил в книгу не лист, а диаграмму. Отсюда и пошло обращение Charts("FCh"). Сейчас же, как видите, обращение к диаграмме получается только через worksheets("FCh").  
Сейчас буду пробовать ваше последнее предложение...
 
неа - ошибка 404: Object required
 
Нет, это не проблема!  
Просто не хотел вас сильно в дебри грузить. Сейчас постараюсь выскребсти, всё что относится к вопросу. Слишком много относящегося к коммерческой тайне и я не могу просто прислать файл.
 
Сервер выдаёт ошибку 10053 - Ошибка соединения с сервером. Два раза попробовал.  
Возможно политика нашего сисадмина не позволяет подшить файл. Может мне мыло своё кинете? Или только около 9-ти вечера смогу из дома отправить.
 
Немного не в тему, но может взглянуть с другой стороны?  
Чтобы не обращаться к диаграмме с целью получить формулу линии тренда используйте метод ZVI:  
http://www.planetaexcel.ru/forum.php?thread_id=14149
Bite my shiny metal ass!      
 
Может его служба безопасности трясет за попытку "подшить файл"  
Даже суток не прошло еще :)
Bite my shiny metal ass!      
 
Извините, но сегодня на меня очень много работы навалилось. Много ответственности. А откусывать по 2-3 минутки на эту задачу - халатно.
 
{quote}{login=Лузер™}{date=02.03.2011 11:25}{thema=}{post}Немного не в тему, но может взглянуть с другой стороны?  
Чтобы не обращаться к диаграмме с целью получить формулу линии тренда используйте метод ZVI:  
http://www.planetaexcel.ru/forum.php?thread_id=14149{/post}{/quote}  
 
Очень интересно! Спасибо за ссылочку!
 
Да - стоило заменить Chart("FCh").SeriesCollection(1).Values = "..." на    
Dim C as ChartObject  
....  
Set C = Worksheets("FCh").ChartObjects(1)  
C.Chart.SeriesCollection(1).Values = "..." - теперь работает  
C.Chart.SeriesCollection(1).Trendlines(1).DisplayEquation = True - тоже работает  
 
Спасибо большое за помощь!  
Восстановил все пробелы в диаграмме.  
Хотя, почему одновременно перестал работать старый вариант и куда пропали полиномы с графика и соответственно их формулы, для меня осталось загадкой.
Страницы: 1
Читают тему
Наверх