Подсчет количества строк
rever27
Дата: Воскресенье, 31.05.2015, 21:57 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация:
0
±
Замечаний:
20% ±
Excel 2010
Подскажите, товарищи, как можно более правильно выполнить подсчет всех строк. А именно: Активная ячейка находится посередине таблице, нужно узнать, сколько всего строк от самой верхней заполненной, до самой нижней заполненной. Ориентиром служит колонка 17 (можно взять и несколько) Мой код работает, но иногда пустую ячейку принимает не корректно и считает вообще все строки в листе (более млн)
Подскажите, товарищи, как можно более правильно выполнить подсчет всех строк. А именно: Активная ячейка находится посередине таблице, нужно узнать, сколько всего строк от самой верхней заполненной, до самой нижней заполненной. Ориентиром служит колонка 17 (можно взять и несколько) Мой код работает, но иногда пустую ячейку принимает не корректно и считает вообще все строки в листе (более млн) rever27
Ответить
Сообщение Подскажите, товарищи, как можно более правильно выполнить подсчет всех строк. А именно: Активная ячейка находится посередине таблице, нужно узнать, сколько всего строк от самой верхней заполненной, до самой нижней заполненной. Ориентиром служит колонка 17 (можно взять и несколько) Мой код работает, но иногда пустую ячейку принимает не корректно и считает вообще все строки в листе (более млн) Автор - rever27 Дата добавления - 31.05.2015 в 21:57
KSV
Дата: Воскресенье, 31.05.2015, 22:21 |
Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
Активная ячейка находится посередине таблице
Если именно "посередине", а не в первой и не в последней заполненной, можно, например, так: [vba]Код
With ActiveCell MsgBox "Строк в таблице: " & .End(xlDown).Row - .End(xlUp).Row + 1 End With
[/vba] А если активная ячейка может быть в первой или в последней строке таблицы (и при этом таблица не занимает первую и последнюю строки листа), то так: [vba]Код
With ActiveCell MsgBox "Строк в таблице: " & IIf(.Offset(1).Value, .End(xlDown).Row, .Row) - IIf(.Offset(-1).Value, .End(xlUp).Row, .Row) + 1 End With
[/vba]
Активная ячейка находится посередине таблице
Если именно "посередине", а не в первой и не в последней заполненной, можно, например, так: [vba]Код
With ActiveCell MsgBox "Строк в таблице: " & .End(xlDown).Row - .End(xlUp).Row + 1 End With
[/vba] А если активная ячейка может быть в первой или в последней строке таблицы (и при этом таблица не занимает первую и последнюю строки листа), то так: [vba]Код
With ActiveCell MsgBox "Строк в таблице: " & IIf(.Offset(1).Value, .End(xlDown).Row, .Row) - IIf(.Offset(-1).Value, .End(xlUp).Row, .Row) + 1 End With
[/vba]KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Сообщение отредактировал KSV - Воскресенье, 31.05.2015, 22:45
Ответить
Сообщение Активная ячейка находится посередине таблице
Если именно "посередине", а не в первой и не в последней заполненной, можно, например, так: [vba]Код
With ActiveCell MsgBox "Строк в таблице: " & .End(xlDown).Row - .End(xlUp).Row + 1 End With
[/vba] А если активная ячейка может быть в первой или в последней строке таблицы (и при этом таблица не занимает первую и последнюю строки листа), то так: [vba]Код
With ActiveCell MsgBox "Строк в таблице: " & IIf(.Offset(1).Value, .End(xlDown).Row, .Row) - IIf(.Offset(-1).Value, .End(xlUp).Row, .Row) + 1 End With
[/vba]Автор - KSV Дата добавления - 31.05.2015 в 22:21
AndreTM
Дата: Понедельник, 01.06.2015, 00:10 |
Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
500
±
Замечаний:
0% ±
2003 & 2010
[vba]Код
MsgBox "Строк в таблице: " & ActiveCell.CurrentRegion.Rows.Count
[/vba]
[vba]Код
MsgBox "Строк в таблице: " & ActiveCell.CurrentRegion.Rows.Count
[/vba] AndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Ответить
Сообщение [vba]Код
MsgBox "Строк в таблице: " & ActiveCell.CurrentRegion.Rows.Count
[/vba] Автор - AndreTM Дата добавления - 01.06.2015 в 00:10
rever27
Дата: Понедельник, 01.06.2015, 00:38 |
Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация:
0
±
Замечаний:
20% ±
Excel 2010
KSV хорошо работает первый вариант. Второй не подходит в связи с тем, что с таблицей еще ведутся действия по удалению нижних ячеек. Спасибо! AndreTM этот вариант будет работать, если нужно посчитать диапазон от самой первой до текущей.
KSV хорошо работает первый вариант. Второй не подходит в связи с тем, что с таблицей еще ведутся действия по удалению нижних ячеек. Спасибо! AndreTM этот вариант будет работать, если нужно посчитать диапазон от самой первой до текущей.rever27
Ответить
Сообщение KSV хорошо работает первый вариант. Второй не подходит в связи с тем, что с таблицей еще ведутся действия по удалению нижних ячеек. Спасибо! AndreTM этот вариант будет работать, если нужно посчитать диапазон от самой первой до текущей.Автор - rever27 Дата добавления - 01.06.2015 в 00:38
KSV
Дата: Понедельник, 01.06.2015, 00:38 |
Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
AndreTM , согласен! Так проще.... (если таблица на листе одна)
AndreTM , согласен! Так проще.... (если таблица на листе одна)KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Сообщение отредактировал KSV - Понедельник, 01.06.2015, 00:41
Ответить
Сообщение AndreTM , согласен! Так проще.... (если таблица на листе одна)Автор - KSV Дата добавления - 01.06.2015 в 00:38
AndreTM
Дата: Понедельник, 01.06.2015, 00:45 |
Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация:
500
±
Замечаний:
0% ±
2003 & 2010
будет работать, если нужно посчитать диапазон от самой первой до текущей
Проверяли? Какие ваши доказательства? (с) Так проще.... (если таблица на листе одна)
А если несколько - то они же всё рано отдельно нарисованы, пропуски строк/столбцов есть между ними, а по условию: Активная ячейка находится посередине таблицы...
т.е. мы находимся в нужной таблице, она отделена от других "таблиц", заполнена данными... все условия для .CurrentRegion
будет работать, если нужно посчитать диапазон от самой первой до текущей
Проверяли? Какие ваши доказательства? (с) Так проще.... (если таблица на листе одна)
А если несколько - то они же всё рано отдельно нарисованы, пропуски строк/столбцов есть между ними, а по условию: Активная ячейка находится посередине таблицы...
т.е. мы находимся в нужной таблице, она отделена от других "таблиц", заполнена данными... все условия для .CurrentRegionAndreTM
Skype: andre.tm.007 Donate: Q iwi: 9517375010
Сообщение отредактировал AndreTM - Понедельник, 01.06.2015, 00:51
Ответить
Сообщение будет работать, если нужно посчитать диапазон от самой первой до текущей
Проверяли? Какие ваши доказательства? (с) Так проще.... (если таблица на листе одна)
А если несколько - то они же всё рано отдельно нарисованы, пропуски строк/столбцов есть между ними, а по условию: Активная ячейка находится посередине таблицы...
т.е. мы находимся в нужной таблице, она отделена от других "таблиц", заполнена данными... все условия для .CurrentRegionАвтор - AndreTM Дата добавления - 01.06.2015 в 00:45
KSV
Дата: Понедельник, 01.06.2015, 00:49 |
Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
AndreTM , я думаю, это был вопрос
AndreTM , я думаю, это был вопрос KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Ответить
Сообщение AndreTM , я думаю, это был вопрос Автор - KSV Дата добавления - 01.06.2015 в 00:49
rever27
Дата: Понедельник, 01.06.2015, 00:51 |
Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация:
0
±
Замечаний:
20% ±
Excel 2010
AndreTM Немного не так выразился. Выделяет диапазон от самой первой (по крайней мере у меня в полной версии таблицы) до последней заполненной KSV Спасибо за второй вариант. тоже пригодился. После фильтрации таблицы по дубликатам активной становилась последняя ячейки )
AndreTM Немного не так выразился. Выделяет диапазон от самой первой (по крайней мере у меня в полной версии таблицы) до последней заполненной KSV Спасибо за второй вариант. тоже пригодился. После фильтрации таблицы по дубликатам активной становилась последняя ячейки )rever27
Сообщение отредактировал rever27 - Понедельник, 01.06.2015, 01:00
Ответить
Сообщение AndreTM Немного не так выразился. Выделяет диапазон от самой первой (по крайней мере у меня в полной версии таблицы) до последней заполненной KSV Спасибо за второй вариант. тоже пригодился. После фильтрации таблицы по дубликатам активной становилась последняя ячейки )Автор - rever27 Дата добавления - 01.06.2015 в 00:51
KSV
Дата: Понедельник, 01.06.2015, 01:00 |
Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
А если несколько - то они же всё рано отдельно нарисованы, пропуски строк/столбцов есть между ними, а по условию
Да, я уже проверил Ваш вариант корректно покажет и для нескольких таблиц на листе.
А если несколько - то они же всё рано отдельно нарисованы, пропуски строк/столбцов есть между ними, а по условию
Да, я уже проверил Ваш вариант корректно покажет и для нескольких таблиц на листе.KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Ответить
Сообщение А если несколько - то они же всё рано отдельно нарисованы, пропуски строк/столбцов есть между ними, а по условию
Да, я уже проверил Ваш вариант корректно покажет и для нескольких таблиц на листе.Автор - KSV Дата добавления - 01.06.2015 в 01:00
KSV
Дата: Понедельник, 01.06.2015, 01:03 |
Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
второй вариант. тоже пригодился.
Рад за Вас!
второй вариант. тоже пригодился.
Рад за Вас! KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Сообщение отредактировал KSV - Понедельник, 01.06.2015, 01:04
Ответить
Сообщение второй вариант. тоже пригодился.
Рад за Вас! Автор - KSV Дата добавления - 01.06.2015 в 01:03
rever27
Дата: Понедельник, 01.06.2015, 01:05 |
Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация:
0
±
Замечаний:
20% ±
Excel 2010
Товарищи. Вот полный вариант таблицы. AndreTM лично у меня считает, что значений 76. Т.е. с самой первой строчки )
Товарищи. Вот полный вариант таблицы. AndreTM лично у меня считает, что значений 76. Т.е. с самой первой строчки ) rever27
К сообщению приложен файл:
12.xlsm
(42.2 Kb)
Ответить
Сообщение Товарищи. Вот полный вариант таблицы. AndreTM лично у меня считает, что значений 76. Т.е. с самой первой строчки ) Автор - rever27 Дата добавления - 01.06.2015 в 01:05
KSV
Дата: Понедельник, 01.06.2015, 02:40 |
Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
Это потому, что у вас ячейки X37:AG37;AJ37;AL37;AN37:AY37 имеют текстовый формат и их значения "", а не Empty. Поэтому .CurrentRegion думает, что строка 37 принадлежит единой таблице A1:DR76. Чтобы убедиться, можете выделить эти ячейки - скопируйте адреса диапазонов из этого поста, вставьте все разом в поле "Имя" (см. вложенный скриншот), нажмите Enter, чтобы Excel их выделил, нажмите Del, чтобы очистить их, и .CurrentRegion вам покажет, что в вашей таблице 39 строк (строку заголовка (шапки) таблицы он тоже считает, т.к. она принадлежит таблице)
Это потому, что у вас ячейки X37:AG37;AJ37;AL37;AN37:AY37 имеют текстовый формат и их значения "", а не Empty. Поэтому .CurrentRegion думает, что строка 37 принадлежит единой таблице A1:DR76. Чтобы убедиться, можете выделить эти ячейки - скопируйте адреса диапазонов из этого поста, вставьте все разом в поле "Имя" (см. вложенный скриншот), нажмите Enter, чтобы Excel их выделил, нажмите Del, чтобы очистить их, и .CurrentRegion вам покажет, что в вашей таблице 39 строк (строку заголовка (шапки) таблицы он тоже считает, т.к. она принадлежит таблице) KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Ответить
Сообщение Это потому, что у вас ячейки X37:AG37;AJ37;AL37;AN37:AY37 имеют текстовый формат и их значения "", а не Empty. Поэтому .CurrentRegion думает, что строка 37 принадлежит единой таблице A1:DR76. Чтобы убедиться, можете выделить эти ячейки - скопируйте адреса диапазонов из этого поста, вставьте все разом в поле "Имя" (см. вложенный скриншот), нажмите Enter, чтобы Excel их выделил, нажмите Del, чтобы очистить их, и .CurrentRegion вам покажет, что в вашей таблице 39 строк (строку заголовка (шапки) таблицы он тоже считает, т.к. она принадлежит таблице) Автор - KSV Дата добавления - 01.06.2015 в 02:40
rever27
Дата: Понедельник, 01.06.2015, 07:40 |
Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация:
0
±
Замечаний:
20% ±
Excel 2010
Да, все верно. Но как мне находить эти пустые текстовые ячейки в таблице? Есть какой то макрос по поиску и очистке?
Да, все верно. Но как мне находить эти пустые текстовые ячейки в таблице? Есть какой то макрос по поиску и очистке? rever27
Сообщение отредактировал rever27 - Понедельник, 01.06.2015, 07:41
Ответить
Сообщение Да, все верно. Но как мне находить эти пустые текстовые ячейки в таблице? Есть какой то макрос по поиску и очистке? Автор - rever27 Дата добавления - 01.06.2015 в 07:40