Имя: Пароль:
1C
 
Как определить количество заполненных строк в Excel'е?
Ø
0 OlegKZ
 
03.02.06
13:05
Здравствуте! Естественно сабж из 1С. Если не перебором, то как?
1 Любитель XML
 
03.02.06
13:11
а чем перебор не устраивает? вроде не тормозит...
2 GB
 
03.02.06
13:12
(0)
метод определяет, когда закончились данные на листе:
SpecialCells(11) - "последняя" ячейка
Например, если нужен номер строки последней ячейки,
то LastRow=ExcelApp.Cells(1,1).SpecialCells(11).Row;
3 Djkxfhf
 
03.02.06
13:13
Excel_Лист = Excel.Worksheets(1);
//просмотрим ячейки одного листа
первИспСтрока = Excel_Лист.UsedRange.Row;
ВсегоСтрок = первИспСтрока + Excel_Лист.UsedRange.Rows.Count -1;
первИспСтолбец = Excel_Лист.UsedRange.Column;
ВсегоСтолбцов = первИспСтолбец + Excel_Лист.UsedRange.Columns.Count -1;
Для номСтроки = первИспСтрока По ВсегоСтрок Цикл
  Для номСтолбца = первИспСтолбец По ВсегоСтолбцов Цикл
    //Сообщить( "номСтроки="+номСтроки + " номСтолбца="+номСтолбца );
    //Сообщить( """"+Excel_Лист.Cells( номСтроки, номСтолбца).Formula+ """" );
  КонецЦикла;
КонецЦикла;
4 GB
 
03.02.06
13:15
(+2) А еще лучше, воспользуйся поиском: много чего интересного найдешь по интересующей тебя теме!
5 OlegKZ
 
03.02.06
13:24
Всем спасибо. Просто хотел узнать ради интереса.
6 smaharbA
 
03.02.06
13:33
Сообщить(oExcel.WorkSheets(1).UsedRange.Row);
7 Djkxfhf
 
03.02.06
13:35
2(5) Чегоо? Ради интереса??
 Мдя.
8 OlegKZ
 
03.02.06
13:57
(7) Не, вообще это надо, но работает перебором и не тормрозит, а переделывать лень. Может когда и сделаю. Поэтому спрсил.
9 aka AMIGO
 
03.02.06
14:24
(2), (3), (6) - странные вещи возвращает функция..
В таблице у меня 2078 строк, а определяется
Лист.UsedRange.Rows.Count = 4775
Лист.Cells(1,1).SpecialCells(11).Row = 4775
ЗЫ. лист не мой, может быть удаляли половину, а инфа в Ecxel осталась..
а жаль, очень хотелось :))
ЗЫЫ. подсмотрел! я по-ламерски, прямо в обработке ставил номер последней строки.. :((
10 aka AMIGO
 
03.02.06
14:28
пробежал в ёкселе до конца - таблица тормознула именно на 4775 и чуть дальше.
Что-же все-таки возвращает функция?
Но явно не испоьзованные ячейки :((
11 Uho
 
03.02.06
14:32
(10) там может быть оформление задействовано, у меня SpecialCells(11) всегда отлично работало.
12 OlegKZ
 
03.02.06
14:41
(10) у меня всё отлично отработало. Нажми в проверяемом файле ctrl+end. Посмотри на какой строке остановится курсор.
13 aka AMIGO
 
03.02.06
14:45
(11) - файлик не мой, так что определить форматы не получается..
(12) - нажал, на 4775 :))))
так что, похоже, это остатки каких-то действий с таблицей, остались хвосты, они и мещают..
ладушки, спасибо всем :))
14 zzz
 
03.02.06
14:50
2(13) Так, положь файл на место и больше на лазь в закрома Родины! Мы их прятали, прятали понимаешь ..
15 OlegKZ
 
03.02.06
14:51
(13) Так попробуй в новом файле. Наколбась строк и проверяй.
16 Uho
 
03.02.06
15:01
(13) Достаточно просто изменить формат пустой ячейки (например, с общего на числовой), чтобы она стала "используемой"
ЗЫ. Попробуй на строке 4776 проделай это. И Ctrl+End будет останавливаться на ней
17 Чучундер
 
03.02.06
15:07
Так что все таки правильно использовать, чтобы получить номер последней строки, в которой ВБИТЫ КАКИЕ ЛИБО ДАННЫЕ, а не применено оформление?
ЮэедРнге или СпециалЦелл?
18 zzz
 
03.02.06
15:13
2(17) 0 - это данные или нет? "" - это данные или нет?
ЮэедРнге = СпециалЦелл
19 aka AMIGO
 
03.02.06
15:15
14. ой!!.. я больше не буду!! ;))
15. уже проверил, всё путем получается..
16. всё Ок, это формат шаловливыми ручонками, звонил автору этого ёкселевского шедевра :))
17. использовать можно всё, проверь -0 сам убедишься :))
20 Чучундер
 
03.02.06
21:04
(18) Я по Экселю не спец, но пустая строка и 0 - это все-таки данные.
а вот какой-нить специальный NULL - это "не данные".
И если содержимое ячейки не изменялось (в т.ч. могло быть введено и 0, и "") - то визуальный формат отображения ячейки никоим образом не определяет что в нем хранится в данный момент...
Поэтому, если я обвел ячейку рамкой, то с точки зрения хранения данных в ячейках ничего не изменилось... как была ячейка не заполненная данными (NULL) - так и осталась не заполненная... хотя, конечно, наверняка не всек так просто ;-)
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.