Количество строк в excel программно

   ТаверСети

22.04.05 — 12:14

  Попытка
    Прайс = Новый ComОбъект(«Excel.Application»);
  Исключение
    Предупреждение(«Не удалось создать COM-объект Excel.Application!!!»);
    Возврат;
  КонецПопытки;
  Попытка
    Книга = Прайс.WorkBooks().Open(ИмяФайла);
  Исключение
    Предупреждение(«» + ОписаниеОшибки());
    Возврат;
  КонецПопытки;

    ну че тутуа писать????

      Книга.Close();

   miki

1 — 22.04.05 — 12:15

65k.
Или тебе только не пустые?

   ТаверСети

2 — 22.04.05 — 12:16

miki
ну чтобы точно понятно что дальше ничего нету

   miki

3 — 22.04.05 — 12:18

Проверяй значение ячейки на <пусто> или маркер какой-нить пиши в конец ХЛС.

   ТаверСети

4 — 22.04.05 — 12:18

miki (3)
нифина был другой способ
мне тута каньше ктото обьяснил но я забыл
а в архивах нету

   Ret

5 — 22.04.05 — 12:21

ВходExcel = СоздатьОбъект(«Excel.Application»);
НужныйЛист=ВходExcel.Worksheets.Item(ЛистExcel);
КонСтрока=НужныйЛист.Cells(1,1).SpecialCells(11).Row;
КонСтолбец=НужныйЛист.Cells(1,1).SpecialCells(11).Column;
….
а далее все обходы по строкам и столбцам через циклы.

   ТаверСети

6 — 22.04.05 — 12:23

Ret(5)
НужныйЛист=ВходExcel.Worksheets.Item(ЛистExcel);
вот ето место пожалуйста поподробнее.
как получить 1-й лист?

   Ret

7 — 22.04.05 — 12:25

+5 Как пример
//*******************************************
//проверяет есть ли нужные сведения на листе
Функция ПроверкаПередзагрузкой(ВыбранныйЛист,НомерЛиста);
  ЕстьНужныеСведения=0;
  КонСтолб=ВыбранныйЛист.Cells(1,1).SpecialCells(11). Column;
  Для i = НачСтр По КонСтр Цикл
    Если ПустоеЗначение(ВыбранныйЛист.Cells(i,3).Text)=1 Тогда
      Продолжить;
    Иначе
      Для к=1 по КонСтолб Цикл
        //Проверим ячейки на всякую дрянь
        Если ПроверкаБитыхСсылок(ВыбранныйЛист.Cells(i,к))=1 Тогда
          ВнестиВКомментарийЗагрузки(«На выбранном вами листе №»+НомерЛиста+» имеются ошибки.Лист не будет загружен»);
          Возврат ЕстьНужныеСведения;
        КонецЕсли;
      КонецЦикла;
      Если //Возможно это индетификаторы колонок
      (Число(ВыбранныйЛист.Cells(i,3).Value)=3)
      и (Число(ВыбранныйЛист.Cells(i,1).Value)=1)
      и (Число(ВыбранныйЛист.Cells(i,2).Value)=2)
      и (Число(ВыбранныйЛист.Cells(i,4).Value)=4)
      и (Число(ВыбранныйЛист.Cells(i,5).Value)=5)
      и (Число(ВыбранныйЛист.Cells(i,6).Value)=6)
      и (Число(ВыбранныйЛист.Cells(i,7).Value)=7)
      и (Число(ВыбранныйЛист.Cells(i,8).Value)=8)
      и (Число(ВыбранныйЛист.Cells(i,9).Value)=9)
      и (Число(ВыбранныйЛист.Cells(i,10).Value)=10)
      и (Число(ВыбранныйЛист.Cells(i,11).Value)=11)
      и (Число(ВыбранныйЛист.Cells(i,12).Value)=12)
      и (Число(ВыбранныйЛист.Cells(i,13).Value)=13)
      и (Число(ВыбранныйЛист.Cells(i,14).Value)=14)
      и (Число(ВыбранныйЛист.Cells(i,15).Value)=15)
      и (Число(ВыбранныйЛист.Cells(i,16).Value)=16)
      и (Число(ВыбранныйЛист.Cells(i,17).Value)=17)
      Тогда //наверное то что нам нужно
        ЕстьНужныеСведения=1;
        Возврат ЕстьНужныеСведения;
      КонецЕсли;
    КонецЕсли;
  КонецЦикла;
  Возврат ЕстьНужныеСведения;
КонецФункции // ПроверкаПередзагрузкой
//Проверим, а есть ли нужные данные
  Если ПроверкаПередзагрузкой(НужныйЛист,ЛистExcel)=0 Тогда
    Предупреждение(«На выбранном вами листе нет нужных сведений»,5);
    Возврат;
  КонецЕсли;
МаксимумПустыхСтрок=25;//чтобы просмотреть все строки, но не зациклиться
  СчетчикПустыхСтрок=0;//т.к. м.б. какие-либо строки оставлены пустыми для разделения и прочей красивости
  НайденыйСтатус=»»;
    Для index=НачСтр По КонСтр Цикл // обход по строкам
      ЗначениеКолонки1 = НужныйЛист.Cells(index,1).Value;
      Если ПустоеЗначение(ЗначениеКолонки1)=1 Тогда //чтобы побыстрее просмотреть
        СчетчикПустыхСтрок=СчетчикПустыхСтрок+1;
        Если СчетчикПустыхСтрок>МаксимумПустыхСтрок Тогда //хорош копать
          СчетчикПустыхСтрок=0;
          Прервать;
        Иначе
          Продолжить;
        КонецЕсли;
      Иначе //не пустое значение 1колонки
…………….
ну и т.д.

   Ret

8 — 22.04.05 — 12:27

+5 и еще
//*******************************************
//проверяет нет ли всякой бяки на в ячейке
Функция ПроверкаБитыхСсылок(Ячейка)
  БитаяСсылка=»»;
  ТекстЯчейки=Ячейка.Text;
  Если СписокОшибокЁкселя.НайтиЗначение(ТекстЯчейки)=0 Тогда
    БитаяСсылка=0;
    //Сообщить(Ячейка.Value);
  Иначе
    БитаяСсылка=1;
    //Сообщить(ТекстЯчейки);
  КонецЕсли;
  Возврат БитаяСсылка;
КонецФункции // ПроверкаБитыхСсылок
———————————————
это основные операторы модуля
//Для исключения ошибок екселя
СписокОшибокЁкселя=СоздатьОбъект(«СписокЗначений»);
СписокОшибокЁкселя.ДобавитьЗначение(«#ПУСТО!»);
СписокОшибокЁкселя.ДобавитьЗначение(«#ДЕЛ/0!»);
СписокОшибокЁкселя.ДобавитьЗначение(«#ЗНАЧ!»);
СписокОшибокЁкселя.ДобавитьЗначение(«#ССЫЛКА!»);
СписокОшибокЁкселя.ДобавитьЗначение(«#ИМЯ?»);
СписокОшибокЁкселя.ДобавитьЗначение(«#ЧИСЛО!»);
СписокОшибокЁкселя.ДобавитьЗначение(«#Н/Д»);

   ТаверСети

9 — 22.04.05 — 12:34

Ret(5)
НужныйЛист=ВходExcel.Worksheets.Item(ЛистExcel);
вот ето место пожалуйста поподробнее.
как получить 1-й лист?

   ТаверСети

10 — 22.04.05 — 12:36

мне раньше показывали способ как
узнать количество непустых строк.

   Lex1C

11 — 22.04.05 — 12:39

9 — Метод Sheets(НомерЛиста)

   Ret

12 — 22.04.05 — 12:52

(9)
КоличествоЛистов=ВходExcel.Worksheets.Count;
Для i=1 По КоличествоЛистов Цикл

   ТаверСети

13 — 22.04.05 — 13:01

не сегодня чета нету умных…

   Железяка

14 — 22.04.05 — 13:02

(13)Предупреждение

   Ret

15 — 22.04.05 — 13:05

Мля, итак уже все разжевал…
Ты чо?
КоличествоЛистов=ВходExcel.Worksheets.Count;
Для i=1 По КоличествоЛистов Цикл
НужныйЛист=ВходExcel.Worksheets.Item(i);
………и т.д.

   ТаверСети

16 — 22.04.05 — 13:07

Ret(15)
как узнать номер последней не пустой строки?

   ТаверСети

17 — 22.04.05 — 13:09

  НужныйЛист=Книга.Sheets(1);
  КонСтрока=НужныйЛист.Cells(1,1).SpecialCells(11).Row;
  КонСтолбец=НужныйЛист.Cells(1,1).SpecialCells(11).Column;
  Для поз=1 по КонСтрока Цикл
    Строка=НужныйЛист.Cells(поз,1).Value;
    Сообщить(«»+поз+»=»+Строка);
  КонецЦикла;
=========================
нехочет работать

   Ret

18 — 22.04.05 — 13:11

(13)
Я конечно привожу куски кода, который уже заточен под мои задачи, но из них вполне можно понять логику и использовать под себя.
Когда сам писал это, не мало пришлось покапаться в доках, а тебе выкладываешь на тарелочке, а ты разобраться не можешь.
За тебя-то никто не будет делать. Смотри, разбирайся и делай.

   miki

19 — 22.04.05 — 13:15

Может тебе надо:
  РеальноЮзается=Лист.UsedRange;
  КолонокРеальноЮзаемых=ИспользуемыйЛист.Columns.Count();
  СтрокРеальноЮзаемых=ИспользуемыйЛист.Rows.Count();

   Ret

20 — 22.04.05 — 13:15

Мля…. я тащусь….
НужныйЛист=ВходExcel.Worksheets.Item(ЛистExcel);
КонСтр=НужныйЛист.Cells(1,1).SpecialCells(11).Row;
КонСтолб=НужныйЛист.Cells(1,1).SpecialCells(11).Column;
Для index=НачСтр По КонСтр Цикл // обход по строкам
Для index2 = 1 По КонСтолб Цикл //обход по колонкам
Значение = НужныйЛист.Cells(index,index2).Value;
——далее работаешь со значением
———- и т.д. (шо тебе ящо конец цикла написать?)

   ТаверСети

21 — 22.04.05 — 13:16

короче ето делается так.
=====================
Процедура ЗагрузитьНажатие(Элемент)
  Попытка
    Прайс = Новый ComОбъект(«Excel.Application»);
  Исключение
    Предупреждение(«Не удалось создать COM-объект Excel.Application!!!»);
    Возврат;
  КонецПопытки;
  Попытка
    Книга = Прайс.WorkBooks().Open(ИмяФайла);
  Исключение
    Предупреждение(«» + ОписаниеОшибки());
    Возврат;
  КонецПопытки;

      НужныйЛист=Книга.Sheets(1);
  //НужныйЛист=Прайс.Worksheets.Item(1);
  КонСтрока=НужныйЛист.Cells(1,1).SpecialCells(11).Row;
  КонСтолбец=НужныйЛист.Cells(1,1).SpecialCells(11).Column;
  Для поз=1 по КонСтрока Цикл
    Строка=НужныйЛист.Cells(поз,1).Value;
    Сообщить(«»+поз+»=»+Строка);
  КонецЦикла;

      Книга.Close();
КонецПроцедуры
============================
ето я чета туплю сегодня
спасибо за ответ Ret-у

Cells(1,1).SpecialCells(11).Row -последняя не пустая строка
Cells(1,1).SpecialCells(11).Column — последний не пустой столбец
и еще выше я привел процеДУРУ ПроверкаБитыхСсылок(Ячейка) привел.
Перед загрузкой если там ошибки, то на Значение = НужныйЛист.Cells(index,index2).Value 1С вылетает. Поэтому их надо обязательно отсечь!!!
Не помню где это описано, но это известная весчь.

I am developing a dashboard in excel. And I am looking for calculating row count. (How many records are present) ..

Since there are some blank cells I thought to go from bottom to up. I use the following

   Range("A1048576").Select
Selection.End(xlUp).Select

After this execution the active cell is at A113 which means the row count is 113.

My question is how to get this number 113 from the active cell?

Community's user avatar

asked Feb 4, 2014 at 13:37

Alwyn Miranda's user avatar

You can use this:

Dim lastrow as Long
lastrow = Cells(Rows.Count,"A").End(xlUp).Row

lastrow will contain number of last empty row in column A, in your case 113

answered Feb 4, 2014 at 13:38

Dmitry Pavliv's user avatar

Dmitry PavlivDmitry Pavliv

35.2k13 gold badges79 silver badges80 bronze badges

1

Here is what I usually use for that:

lastrow = WorksheetFunction.CountA(Columns("A:A"))

This will return the number of non-empty cells in Column «A» which is what I think you’re after. Hope this helps.

answered Feb 4, 2014 at 13:49

Jim Simson's user avatar

Jim SimsonJim Simson

2,7663 gold badges21 silver badges30 bronze badges

2

The best way to get the count of rows/records (in most cases) is to use .UsedRange.Rows.Count. You can assign the return value to a variable like this:

lastRow = Sheets(1).UsedRange.Rows.Count

If you use a function that includes a column (such as column A) as shown in other examples, that will only get you the count of rows in that column, which may or may not be what you’re going for. One caveat: if you have formatted rows below your last row with a value then it will return that row number.

answered Mar 3, 2021 at 0:28

SendETHToThisAddress's user avatar

If there is a slight chance that the last row of the worksheet is not empty, you should add an IsEmpty() check to @simoco ‘s solution. Therefore; following is a function that returns the last used row and check if the last row of the worksheet is empty:

Function lastRow(WS As Worksheet, iColumn As String) As Long

    If Not IsEmpty(WS.Range(iColumn & WS.Rows.Count)) Then
        lastRow = WS.Rows.Count
    Else
        lastRow = WS.Range(iColumn & WS.Rows.Count).End(xlUp).Row
    End If

End Function

answered Feb 4, 2014 at 14:22

simpLE MAn's user avatar

simpLE MAnsimpLE MAn

1,56213 silver badges22 bronze badges

escritor
30.09.2009 12:45 Прочитано: 24256

Как при загрузке данных из Excel получить количество колонок и строк в файле?

Yandex
Возможно, вас также заинтересует

Реклама на портале

E_Migachev
01.10.2009 01:44 Ответ № 1

Например так:
Код 1C v 8.х

 НашФайл.Sheets.Item(к).UsedRange.Columns.Count();   //Количество колонок
НашФайл.Sheets.Item(к).UsedRange.Rows.Count(); //Количество строк

Посмотрите пример, в котором это используется

demiurg
05.10.2009 12:14 Ответ № 2

О, только вчера над этим же голову ломал, я получил так:
Код 1C v 8.х

 Попытка
гл_appExcel = Новый COMObject("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки() + "Не удалось найти приложение Microsoft Excel!");
Попытка
ПолноеИмяФайла = "C:ЗаявкиПоступившиеtemp.xls";
exWorkBook = гл_appExcel.Workbooks.Open(ПолноеИмяФайла);
Исключение
Сообщить(ОписаниеОшибки() + " Не удалось открыть файл " + ПолноеИмяФайла);
КонецПопытки;
RangeAll = exWorkBook.ActiveSheet.UsedRange;
// Определим количество всех строк и колонок
ЧислоКолонок = RangeAll.Columns.Count;
ЧислоСтрок= RangeAll.Rows.Count;
//Получение данных о контрагенте
КодКонтрагента = СокрЛП(RangeAll.Cells( 8, 4 ).Text);
ИмяКонтрагента = СокрЛП(RangeAll.Cells( 7, 4 ).Text);
rasswet
07.10.2009 09:14 Ответ № 3

UsedRange -это заполненые?
RangeAll -это все?
если в документе есть столбцы в которых были данные, но они были удалены через del, т.е. там пусто. какой из методов корректно это опознает?

demiurg
07.10.2009 16:39 Ответ № 4

UsedRange — это все ячейки содержащие значение на данный момент.
Если был нажат del, то это пустая ячейка, то есть нет значений.

E_Migachev
25.10.2009 22:49 Ответ № 5

Подсказка: Вы можете приложить к ответу файл или изображение щелкнув по значку или в редакторе.
 

asesja

Пользователь

Сообщений: 320
Регистрация: 21.10.2019

Здравствуйте.
Подскажите, пож-та, как программно, при помощи VBA, посчитать общее количество строк в ячейке «A1», если текста много и он превышает максимальную высоту строки этой ячейки.
Ширина столбца, размер строки, шрифт меняться не будут, т.е. использовать существующие параметры при проведении расчета.
Пример во вложении. Должно получиться — в общем 41 строка (включая пустые строки с переносами)

Изменено: asesja21.10.2022 23:19:17

 

Пытливый

Пользователь

Сообщений: 4587
Регистрация: 22.12.2012

#2

21.10.2022 22:43:41

Здравствуйте.
Почему должно получиться 41? Исходя из примера — там 22 строки.
Формулой можно посчитать:

Код
=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;СИМВОЛ(10);""))

Кому решение нужно — тот пример и рисует.

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#3

21.10.2022 22:59:39

Цитата
написал:
пож-та, как посчитать количество строк текста в ячейке «A1»,

никак

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

asesja

Пользователь

Сообщений: 320
Регистрация: 21.10.2019

#4

21.10.2022 23:10:31

Цитата
написал:
Почему должно получиться 41? Исходя из примера — там 22 строки.

Поправил пример. Имеются пустые строки с переносами.
Зашел в ячейку в файле примера и посчитал строки в ручную — 41 с последней пустой. Скрин во вложении.

 

БМВ

Модератор

Сообщений: 21384
Регистрация: 28.12.2016

Excel 2013, 2016

#5

21.10.2022 23:54:47

вставляем текст бокс, выбираем ширину нужную и авто размер, шрифт. вставляем текст.
смотрим сколько строк

Код
Лист2.shapes(1).TextFrame2.TextRange.Lines.Count

естественно пустые переводы тоже считаются как строки.

Прикрепленные файлы

  • example2739.xlsx (13.11 КБ)

Изменено: БМВ21.10.2022 23:57:28

По вопросам из тем форума, личку не читаю.

 

asesja

Пользователь

Сообщений: 320
Регистрация: 21.10.2019

БМВ, спасибо. Завтра обязательно попробую. Должно получиться. Ключик уже где-то рядом))

 

asesja

Пользователь

Сообщений: 320
Регистрация: 21.10.2019

#7

22.10.2022 21:47:31

БМВ, проверил. Всё получилось как вы написали. Буду использовать код в своей программе для расчета высоты строчек объединенных ячеек с текстовыми данными.
Отличная идея! Ещё раз спасибо за помощь.

В этой статье говорится о подсчете общего количества строк в указанной таблице в Excel. Пожалуйста, сделайте следующее.

Подсчитать общее количество строк в таблице с кодом VBA


Подсчитать общее количество строк в таблице с кодом VBA

Приведенный ниже код VBA может помочь вам подсчитать количество строк в указанной таблице в Excel.

1. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окно, пожалуйста, нажмите Вставить > Модули. Затем скопируйте и вставьте приведенный ниже код VBA в окно модуля.

Код VBA: подсчитать общее количество строк в таблице в Excel

Sub CountTableRows()
'Updated by Extendoffice 2017/9/12
    Dim xTable As ListObject
    Dim xTName As String
    On Error Resume Next
    xTName = Application.InputBox("Please input the table name:", "KuTools For Excel", , , , , , 2)
    Set xTable = ActiveSheet.ListObjects(xTName)
    MsgBox "The table has total number of " & xTable.Range.Rows.Count & " rows.", vbInformation, "KuTools For Excel"
    Set xTable = Nothing
End Sub

3. нажмите F5 ключ для запуска кода.

4. В дебюте Kutools for Excel в диалоговом окне введите имя таблицы, в которой необходимо подсчитать общее количество строк, а затем нажмите кнопку OK кнопка. Смотрите скриншот:

5. Теперь еще один Kutools for Excel появится диалоговое окно, в котором показано, сколько строк существует в этой указанной таблице, щелкните значок OK для завершения. 


Статьи по теме:

  • Как подсчитать количество ячеек между двумя значениями или датами в Excel?
  • Как подсчитать ячейки с определенным текстом в выделении в Excel?
  • Как посчитать количество ответов «Да» или «Нет» в Excel?
  • Как посчитать, содержит ли ячейка текст или часть текста в Excel?

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (0)


Оценок пока нет. Оцените первым!

Понравилась статья? Поделить с друзьями:
  • Количество строк в excel по версиям
  • Количество строк в excel определенного значения
  • Количество строк в excel миф
  • Количество строк в excel максимум
  • Количество совпадений в двух строках excel