Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Ошибка при обращении к коллекции HPageBreaks  [new]
Megabrain
Member

Откуда: НКВД
Сообщений: 5307
VFP 8.0 без SP1
Код следующий
HPB=exclapp.ActiveSheet.HPageBreaks

FOR EACH kkk IN HPB
WAIT STR(kkk.type)+"!!!!!" WINDOW
ENDFOR

При обращении в цикле к коллекции возникает ошибка "Ошибка OLE,код 0x8002000b:Неверный индекс". С чем это может быть связано?
15 дек 06, 09:51    [3539830]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при обращении к коллекции HPageBreaks  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Передёрни шит из начала в конец и обратно
15 дек 06, 10:04    [3539922]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при обращении к коллекции HPageBreaks  [new]
Megabrain
Member

Откуда: НКВД
Сообщений: 5307
AleksMed
Передёрни шит из начала в конец и обратно


Каким образом??
15 дек 06, 10:12    [3539979]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при обращении к коллекции HPageBreaks  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
Ну хотя бы так
exclapp.ActiveSheet.Range("A65000").Select
exclapp.ActiveSheet.Range("A1").Select
15 дек 06, 10:28    [3540098]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при обращении к коллекции HPageBreaks  [new]
Megabrain
Member

Откуда: НКВД
Сообщений: 5307
AleksMed
Ну хотя бы так
exclapp.ActiveSheet.Range("A65000").Select
exclapp.ActiveSheet.Range("A1").Select


Это работает, но не совсем. Если предварительно не сделаиш HPB.Add(exclapp.Worksheets(1).Range("e5")) не работает, если сделаиш то работает. В таком коде дает ошибку WAIT STR(HPB.Item(1).type) WINDOW , если нет "Item". Хрен поймеш то-ли я чего-то не понимаю то-ли что-то глючит.
15 дек 06, 11:38    [3540808]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при обращении к коллекции HPageBreaks  [new]
Megabrain
Member

Откуда: НКВД
Сообщений: 5307
Оказывается надо было сделать:
ActiveWindow.View = xlPageBreakPreview
Только какого черта это в справке не написано? И все равно вот этот код не работает пока
для HPB не проставиш Item.
HPB=exclapp.Worksheets(1).HPageBreaks
WAIT STR(HPB.Item(1).type) WINDOW
15 дек 06, 14:37    [3542410]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при обращении к коллекции HPageBreaks  [new]
Megabrain
Member

Откуда: НКВД
Сообщений: 5307
Оказывается надо было сделать:
ActiveWindow.View = xlPageBreakPreview
Только какого черта это в справке не написано? И все равно вот этот код не работает пока
для HPB не проставиш Item.
HPB=exclapp.Worksheets(1).HPageBreaks
WAIT STR(HPB.Item(1).type) WINDOW
15 дек 06, 14:39    [3542422]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при обращении к коллекции HPageBreaks  [new]
Kruchinin Pahan
Member

Откуда: Екатеринбург
Сообщений: 925
Megabrain
Оказывается надо было сделать:
ActiveWindow.View = xlPageBreakPreview
Только какого черта это в справке не написано? И все равно вот этот код не работает пока
для HPB не проставиш Item.
HPB=exclapp.Worksheets(1).HPageBreaks
WAIT STR(HPB.Item(1).type) WINDOW

Странно достаточно. То что приходится передергивать View. Это как раз нормально - у экселя должно возникнуть событие, чтобы расставить разрывы страниц. А дальше я обращаюсь таким макаром:
		lnMaxBreaks = Sch.HPageBreaks.Count
		IF lnMaxBreaks > 0 AND lnWholeCount > 1
			DIMENSION laPgB (lnMaxBreaks)
			FOR m.i = 1 TO lnMaxBreaks
				laPgb[m.i] = Sch.HPageBreaks[m.i].Location.Row
			NEXT && m.i
			*-* (IGEL) Удаляем инфу о разрывах страниц
			Sch.HPageBreaks[1].DragOff(xlDown, 1)
16 дек 06, 05:53    [3545370]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при обращении к коллекции HPageBreaks  [new]
Kruchinin Pahan
Member

Откуда: Екатеринбург
Сообщений: 925
Megabrain
Оказывается надо было сделать:
ActiveWindow.View = xlPageBreakPreview

Вдогонку. Коллекция HPageBreaks у меня доступна только на активном листе активной книги. Если активирован, например, второй лист, а пытаешься обратиться к первому, даже объекта HPageBreaks не получаешь.
16 дек 06, 06:13    [3545380]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить