Как узнать количество строк в OpenOffice.Calc? #329057


#0 by prog_ress
есть в OpenOffice.Calc что-то типа экселевской функции Rows.Count, которая выводит количество используемых строк? аналогичная функция в ОО выводит просто 65536, т.е. общее количество..
#1 by ne6o
отладчиком встань и посмотри
#2 by prog_ress
отладчик просто показывает, что это COMОбъект и все..
#3 by ne6o
С офисом так: Потом становишься на "документ" и смотришь все свойства через отладчик. Правда сильно тормозит, но всё же
#4 by prog_ress
есть такое дело. но вот с ОО не показывает почему-то свойства, а пишет и тип и значение COMОбъект и все, раскрыть нельзя, как для МСофиса..
#5 by b_ru
В экселе она тоже самое вернет. Другое дело UsedRange.Rows.Count
#6 by smaharbA
и что это вернет в томже екселе ?
#7 by b_ru
debug.Print ActiveSheet.rows.Count 1 Эксель 2007 поэтому в первом случае возвращет миллион, а не 65 тысяч Лист пустой, поэтому во втором возвращает единичку А вообще, убедиться недолго
#8 by smaharbA
теперь заполни C7 и снова выполни
#9 by prog_ress
вернет 7, т.е. номер последней заполненной строки. это и нужно получить в ОО, только хз как.. как-то нужно область получить такую же, как ActiveSheet
#10 by smaharbA
а если проверить ? в томже екселе ?
#11 by smaharbA
+ в из раза в разы повторяющаяся ошибка... в ОО примерно так doc=ThisComponent oSheet=thiscomponent.sheets.getByIndex но чтобы найти истинно заполненные, а не только оформление, в екселе просче, хотя и в ОО можно
#12 by b_ru
дятел? ActiveSheet.UsedRange.rows.count И никакой ошибки. А что касается "истинно заполненных", оно, мне кажется, автору не надо. Как и большинству людей.
#13 by smaharbA
еще разок, для особо одареных - заполни одну ячейку C7 и выполни  msgbox ActiveSheet.UsedRange.rows.count
#14 by smaharbA
+ а за ActiveSheet и прочие активе надо порукам линейкой... хотя к теме это не относится
#15 by b_ru
не сразу но дошло о чем ты. Просто из непонятно, что нужен номер последней сроки, а не количество используемых, а не увидел. За дятла извиняюсь. да? А что, нужно выполнить действие для какого-то конкретного листа? Может я еще чего-то не учитал?
#16 by smaharbA
да, а то если враз несколько оле соединений происходит и усер еще и интерактивно, то можно легко наколоться
#17 by prog_ress
сорри, в сам не так написал: ActiveSheet читать как UsedRange.. в это и делается, как я понял, только вот на строчке oEndAdr = oCursor.getRangeAddress; в 1С вываливается ошибка о том, что метод getRangeAddress не найден..
#18 by ЫЫЫЫ
У меня вот так работает:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С