22.04.05 — 12:14
Попытка
Прайс = Новый ComОбъект(«Excel.Application»);
Исключение
Предупреждение(«Не удалось создать COM-объект Excel.Application!!!»);
Возврат;
КонецПопытки;
Попытка
Книга = Прайс.WorkBooks().Open(ИмяФайла);
Исключение
Предупреждение(«» + ОписаниеОшибки());
Возврат;
КонецПопытки;
ну че тутуа писать????
Книга.Close();
1 — 22.04.05 — 12:15
65k.
Или тебе только не пустые?
2 — 22.04.05 — 12:16
miki
ну чтобы точно понятно что дальше ничего нету
3 — 22.04.05 — 12:18
Проверяй значение ячейки на <пусто> или маркер какой-нить пиши в конец ХЛС.
4 — 22.04.05 — 12:18
miki (3)
нифина был другой способ
мне тута каньше ктото обьяснил но я забыл
а в архивах нету
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-й лист?
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колонки
…………….
ну и т.д.
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
мне раньше показывали способ как
узнать количество непустых строк.
11 — 22.04.05 — 12:39
9 — Метод Sheets(НомерЛиста)
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)Предупреждение
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;
Сообщить(«»+поз+»=»+Строка);
КонецЦикла;
=========================
нехочет работать
18 — 22.04.05 — 13:11
(13)
Я конечно привожу куски кода, который уже заточен под мои задачи, но из них вполне можно понять логику и использовать под себя.
Когда сам писал это, не мало пришлось покапаться в доках, а тебе выкладываешь на тарелочке, а ты разобраться не можешь.
За тебя-то никто не будет делать. Смотри, разбирайся и делай.
19 — 22.04.05 — 13:15
Может тебе надо:
РеальноЮзается=Лист.UsedRange;
КолонокРеальноЮзаемых=ИспользуемыйЛист.Columns.Count();
СтрокРеальноЮзаемых=ИспользуемыйЛист.Rows.Count();
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?
asked Feb 4, 2014 at 13:37
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 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 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
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 MAnsimpLE MAn
1,56213 silver badges22 bronze badges
escritor |
|
||
---|---|---|---|
Как при загрузке данных из Excel получить количество колонок и строк в файле? |
Yandex |
|
||
---|---|---|---|
E_Migachev |
|
||
---|---|---|---|
Например так:
Код 1C v 8.х
Посмотрите пример, в котором это используется |
demiurg |
|
||
---|---|---|---|
О, только вчера над этим же голову ломал, я получил так:
Код 1C v 8.х
|
rasswet |
|
||
---|---|---|---|
UsedRange -это заполненые? |
demiurg |
|
||
---|---|---|---|
UsedRange — это все ячейки содержащие значение на данный момент. |
E_Migachev |
|
||
---|---|---|---|
Подсказка: Вы можете приложить к ответу файл или изображение щелкнув по значку или в редакторе. |
asesja Пользователь Сообщений: 320 |
Здравствуйте. Изменено: asesja — 21.10.2022 23:19:17 |
Пытливый Пользователь Сообщений: 4587 |
#2 21.10.2022 22:43:41 Здравствуйте.
Кому решение нужно — тот пример и рисует. |
||
Ігор Гончаренко Пользователь Сообщений: 13746 |
#3 21.10.2022 22:59:39
никак Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
asesja Пользователь Сообщений: 320 |
#4 21.10.2022 23:10:31
Поправил пример. Имеются пустые строки с переносами. |
||
БМВ Модератор Сообщений: 21384 Excel 2013, 2016 |
#5 21.10.2022 23:54:47 вставляем текст бокс, выбираем ширину нужную и авто размер, шрифт. вставляем текст.
естественно пустые переводы тоже считаются как строки. Прикрепленные файлы
Изменено: БМВ — 21.10.2022 23:57:28 По вопросам из тем форума, личку не читаю. |
||
asesja Пользователь Сообщений: 320 |
БМВ, спасибо. Завтра обязательно попробую. Должно получиться. Ключик уже где-то рядом)) |
asesja Пользователь Сообщений: 320 |
#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-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (0)
Оценок пока нет. Оцените первым!