Версия для печати темы (https://pro1c.org.ua/index.php?s=cd6a81e758791a0d735bf357522b7bb6&showtopic=11255)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ 1С:Предприятие 8.2 _ Какая последняя строка или колонка в EXCEL

Автор: Vofka 20.02.13, 9:44

Узнать последнюю строку можно следующими примерами:

1. Код 1C v 8.х

Сообщить(appExcel.WorkSheets(1).UsedRange.Row);


2. метод определяет, когда закончились данные на листе:
SpecialCells(11) - "последняя" ячейка
Например, если нужен номер строки последней ячейки, код 1C v 8.х

LastRow=ExcelApp.Cells(1,1).SpecialCells(11).Row;


Для проверки нажмите в проверяемом файле ctrl+end. Посмотрите на какой строке остановится курсор.


Узнать последнюю колонку можно следующими примерами:

1.
Код 1C v 8.х Сообщить(appExcel.WorkSheets(1).UsedRange.Columns);


2.
Код 1C v 8.х LastCol=ExcelApp.Cells(1,1).SpecialCells(11).Columns;

Автор: Petre 20.02.13, 15:55

Думаю, не совсем так. Свойство ".Row" выдает первую строку диапазона. Так же, как и свойство ".Column" (без "s") - первую колонку.
Т. е., если диапазон "UsedRange" начинается с ячейки(1, 1), то эти два свойства будут равны 1.
По этому для первого варианта правильнее будет такой код:

//* строка
Сообщить(appExcel.WorkSheets(1).UsedRange.Rows.Count());
//* колонка
Сообщить(appExcel.WorkSheets(1).UsedRange.Columns.Count());


upd:
Только что проверил. Такой вариант тоже не даст корректные данные, т. к. диапазон "UsedRange" не всегда начинается с ячейки(1, 1). Поэтому только через "SpecialCells()"...

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua