Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: VBA: Not a collection object  (Прочитано 7296 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Polundra_Pi
Гость
« : 05-12-2006 13:57 » 

Как говорят: не прошло и пол-года, а я снова решил побеспокоить Вас очередным вопросом.
Срашивал в Лотусном форуме, но сказали, что лучше связатся  с Вами, ведь хоть тема и связана с Лотусом,
но ответ должет лежать только в форумах ВБА.
Возникает вот такая ошибка, ничего бы удивидельного не было бы, если б коллекция объектою пуста, но в ней точно есть собственные екземпляры, но
тогда неясна природа(причина) еррора.
Можете, если кто сталкивался с подобным, или если кто в "курсе дела",
пояснить, пожлуйста, в чём суть ошибки, вознимкающей иногда на строке
Forall pb In wb.Worksheets(i).HPageBreaks,
wb- Excel-книга, pb- экземплярм класса разрывов Листа.
Вот код, когда-то работал, а счас через раз:
          For i=1 To Klist
               wb.Worksheets(i).PageSetup.FirstPageNumber = page
               Kolpb=wb.Worksheets(i).HPageBreaks.Count
               If( wb.Worksheets(i).HPageBreaks.Count>0 ) Then
                    Forall pb In wb.Worksheets(i).HPageBreaks
                         If  (pb.Extent = 1)  Then page=page+1 
                    End Forall
               End If
          Next i   
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #1 : 06-12-2006 06:37 » 

а как у вас объявлена переменная <b>pb</b>?
Записан

I Have Nine Lives You Have One Only
THINK!
Polundra_Pi
Гость
« Ответ #2 : 06-12-2006 08:41 » 

а как у вас объявлена переменная <b>pb</b>?
Здравствуйте!.
pb - горизонтальный пейдж-брик, да по сути я переменную никак не объявлял, Лотус автоматически считает необъявлённые данные как Вариант-тип (общий тип, Dim pb As Variant), в который входят и объекты  OLE-приложения, в даном случае Экселя. Еррор если возникает, то сразу на первом Листе, тоесть при i=1.
Конечно можно тупо  ON ERROR RESUME NEXT и чхать на еррори странные, но всё-таки хотелось бы понять причину возникшей на ровном месте ошибки.
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #3 : 06-12-2006 11:34 » 

если есть возможность поставить "брекпоинт", то поставить его на этой строке и посмотреть что это за объект wb.Worksheets(i).HPageBreaks, может его кто-то случайно переписывает?
Записан

I Have Nine Lives You Have One Only
THINK!
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines