![]() |
![]() |
![]() |
|
Как определить количество заполненных строк в 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) - так и осталась не заполненная... хотя, конечно, наверняка не всек так просто ;-) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |