Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Подсчет количества строк в 2 таблицах - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет количества строк в 2 таблицах (Макросы/Sub)
Подсчет количества строк в 2 таблицах
Folly Дата: Четверг, 17.03.2016, 18:05 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Доброго времени суток!
Помогите, пожалуйста, написать код.
Даны 2 таблицы, расположенные одна под другой. Нужно посчитать сколько строк в первой и второй, присвоив значения переменным.
Заранее благодарю)
К сообщению приложен файл: _Microsoft_Exce.xlsx (9.4 Kb)
 
Ответить
СообщениеДоброго времени суток!
Помогите, пожалуйста, написать код.
Даны 2 таблицы, расположенные одна под другой. Нужно посчитать сколько строк в первой и второй, присвоив значения переменным.
Заранее благодарю)

Автор - Folly
Дата добавления - 17.03.2016 в 18:05
Manyasha Дата: Четверг, 17.03.2016, 18:16 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Folly, 1-й столбец таблицы всегда ФИО?
Формулы рассматриваете или только макрос?


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеFolly, 1-й столбец таблицы всегда ФИО?
Формулы рассматриваете или только макрос?

Автор - Manyasha
Дата добавления - 17.03.2016 в 18:16
abtextime Дата: Четверг, 17.03.2016, 18:19 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Чем не устраивает
Код
=СЧЁТЗ($A$4:$A$9)

?
К сообщению приложен файл: -Microsoft_Exce.xlsx (10.5 Kb)
 
Ответить
СообщениеЧем не устраивает
Код
=СЧЁТЗ($A$4:$A$9)

?

Автор - abtextime
Дата добавления - 17.03.2016 в 18:19
KuklP Дата: Четверг, 17.03.2016, 18:26 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Макросом:
[vba]
Код
    With [a:a].SpecialCells(2)
        lr = .Areas(1).Rows.Count
        lr2 = .Areas(2).Rows.Count
    End With
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Четверг, 17.03.2016, 18:27
 
Ответить
СообщениеМакросом:
[vba]
Код
    With [a:a].SpecialCells(2)
        lr = .Areas(1).Rows.Count
        lr2 = .Areas(2).Rows.Count
    End With
[/vba]

Автор - KuklP
Дата добавления - 17.03.2016 в 18:26
Karataev Дата: Четверг, 17.03.2016, 18:27 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
макрос запускается кнопкой из H2
К сообщению приложен файл: macro.xlsm (18.5 Kb)
 
Ответить
Сообщениемакрос запускается кнопкой из H2

Автор - Karataev
Дата добавления - 17.03.2016 в 18:27
Folly Дата: Четверг, 17.03.2016, 18:48 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Manyasha, нет, заголовки таблиц разные и необходим макрос для подсчета строк в двух таблицах и присвоения значений переменным.

Karataev, не совсем понимаю как работает ваш макрос. А можно эти значения присвоить переменным a и b?


Сообщение отредактировал Folly - Четверг, 17.03.2016, 18:58
 
Ответить
СообщениеManyasha, нет, заголовки таблиц разные и необходим макрос для подсчета строк в двух таблицах и присвоения значений переменным.

Karataev, не совсем понимаю как работает ваш макрос. А можно эти значения присвоить переменным a и b?

Автор - Folly
Дата добавления - 17.03.2016 в 18:48
abtextime Дата: Четверг, 17.03.2016, 18:52 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Folly
Признак начала и конца таблицы какой? В этом основной вопрос
 
Ответить
СообщениеFolly
Признак начала и конца таблицы какой? В этом основной вопрос

Автор - abtextime
Дата добавления - 17.03.2016 в 18:52
Folly Дата: Четверг, 17.03.2016, 18:59 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
abtextime, первая таблица всегда начинается с третьей строки, вторая таблица через 3 строки после первой.
 
Ответить
Сообщениеabtextime, первая таблица всегда начинается с третьей строки, вторая таблица через 3 строки после первой.

Автор - Folly
Дата добавления - 17.03.2016 в 18:59
abtextime Дата: Четверг, 17.03.2016, 19:02 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Признак окончания? Пусто в ячейке Ах?
 
Ответить
СообщениеПризнак окончания? Пусто в ячейке Ах?

Автор - abtextime
Дата добавления - 17.03.2016 в 19:02
abtextime Дата: Четверг, 17.03.2016, 19:03 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Или соответствующая граница у ячеек?
 
Ответить
СообщениеИли соответствующая граница у ячеек?

Автор - abtextime
Дата добавления - 17.03.2016 в 19:03
Folly Дата: Четверг, 17.03.2016, 19:05 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
abtextime, пустые ячейки
 
Ответить
Сообщениеabtextime, пустые ячейки

Автор - Folly
Дата добавления - 17.03.2016 в 19:05
abtextime Дата: Четверг, 17.03.2016, 19:08 | Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
И что будет в таком случае? По Вашему разумению?
К сообщению приложен файл: 6146657.xlsx (9.4 Kb)
 
Ответить
СообщениеИ что будет в таком случае? По Вашему разумению?

Автор - abtextime
Дата добавления - 17.03.2016 в 19:08
abtextime Дата: Четверг, 17.03.2016, 19:12 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Понимаете, когда задача ставится нечётко и является искусственно-учебной (либо жестко вырвана из контекста), тогда и возникает куча вопросов и уточнений
 
Ответить
СообщениеПонимаете, когда задача ставится нечётко и является искусственно-учебной (либо жестко вырвана из контекста), тогда и возникает куча вопросов и уточнений

Автор - abtextime
Дата добавления - 17.03.2016 в 19:12
Wasilich Дата: Четверг, 17.03.2016, 23:55 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
первая таблица всегда начинается с третьей строки, вторая таблица через 3 строки после первой.
Если так, то может так?
[vba]
Код
Sub www()
  a = Range("A3").End(xlDown).Row - 2
  b = Range("A" & a + 2).End(xlDown).Row - a + 5
  MsgBox a & "  " & b
End Sub
[/vba][vba]
Код
Sub qqq()
  a = Range("A3").CurrentRegion.Rows.Count
  b = Range("A" & a + 6).CurrentRegion.Rows.Count
  MsgBox a & "  " & b
End Sub
[/vba]
И вообще, чем не нравится код KuklP?


Сообщение отредактировал Wasilich - Пятница, 18.03.2016, 00:03
 
Ответить
Сообщение
первая таблица всегда начинается с третьей строки, вторая таблица через 3 строки после первой.
Если так, то может так?
[vba]
Код
Sub www()
  a = Range("A3").End(xlDown).Row - 2
  b = Range("A" & a + 2).End(xlDown).Row - a + 5
  MsgBox a & "  " & b
End Sub
[/vba][vba]
Код
Sub qqq()
  a = Range("A3").CurrentRegion.Rows.Count
  b = Range("A" & a + 6).CurrentRegion.Rows.Count
  MsgBox a & "  " & b
End Sub
[/vba]
И вообще, чем не нравится код KuklP?

Автор - Wasilich
Дата добавления - 17.03.2016 в 23:55
_Boroda_ Дата: Пятница, 18.03.2016, 01:42 | Сообщение № 15
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
На случай, если в таблицах есть промежутки, такой тупой вариант перебором
[vba]
Код
Sub tt()
    r0_ = 3
    r1_ = Range("A" & Rows.Count).End(xlUp).Row
    n_ = Range("A" & r0_)
    For i = r0_ + 1 To r1_
        If Range("A" & i) = n_ Then
            a = i - 3 - r0_
            b = r1_ - i + 1
            MsgBox "a = " & a & ", b = " & b
            Exit Sub
        End If
    Next i
End Sub
[/vba]
К сообщению приложен файл: _Microsoft_Exce.xlsm (16.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНа случай, если в таблицах есть промежутки, такой тупой вариант перебором
[vba]
Код
Sub tt()
    r0_ = 3
    r1_ = Range("A" & Rows.Count).End(xlUp).Row
    n_ = Range("A" & r0_)
    For i = r0_ + 1 To r1_
        If Range("A" & i) = n_ Then
            a = i - 3 - r0_
            b = r1_ - i + 1
            MsgBox "a = " & a & ", b = " & b
            Exit Sub
        End If
    Next i
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 18.03.2016 в 01:42
Folly Дата: Пятница, 18.03.2016, 20:05 | Сообщение № 16
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
abtextime, это скорее задача, вырванная из контекста.
Из 1С выгружается 2 таблицы одна под другой и для дальнейшего анализа необходимо было посчитать количество строк в каждой. Всем спасибо.


Сообщение отредактировал Folly - Суббота, 19.03.2016, 19:24
 
Ответить
Сообщениеabtextime, это скорее задача, вырванная из контекста.
Из 1С выгружается 2 таблицы одна под другой и для дальнейшего анализа необходимо было посчитать количество строк в каждой. Всем спасибо.

Автор - Folly
Дата добавления - 18.03.2016 в 20:05
StoTisteg Дата: Суббота, 19.03.2016, 18:49 | Сообщение № 17
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Для неведомого числа таблиц без разрывов, которые неведомо где начинаются и кончаются:
[vba]
Код
Sub Считать_строки()

     Dim i, n, m As Long
     
     n = Cells(Rows.Count, 1).End(xlUp).Row
     m = ActiveSheet.UsedRange.Columns.Count + 1
     Do While n > 0
        i = 1
        Do While Cells(n - 1, 1) <> ""
            n = n - 1
            i = i + 1
        Loop
        Cells(n, m).Value = i & " строк"
        On Error Resume Next
        Do While Cells(n - 1, 1) = ""
            If Err.Number <> 0 Then Exit Do
            n = n - 1
        Loop
        n = n - 1
    Loop

End Sub
[/vba]
Макрос заточен под отсутствие объединённых ячеек в первой колонке. При их наличии результат непредсказуем — от просчёта не всех таблиц до вылета с Type mismatch.
К сообщению приложен файл: RowsCounter.xlsm (15.0 Kb)


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTisteg - Суббота, 19.03.2016, 18:52
 
Ответить
СообщениеДля неведомого числа таблиц без разрывов, которые неведомо где начинаются и кончаются:
[vba]
Код
Sub Считать_строки()

     Dim i, n, m As Long
     
     n = Cells(Rows.Count, 1).End(xlUp).Row
     m = ActiveSheet.UsedRange.Columns.Count + 1
     Do While n > 0
        i = 1
        Do While Cells(n - 1, 1) <> ""
            n = n - 1
            i = i + 1
        Loop
        Cells(n, m).Value = i & " строк"
        On Error Resume Next
        Do While Cells(n - 1, 1) = ""
            If Err.Number <> 0 Then Exit Do
            n = n - 1
        Loop
        n = n - 1
    Loop

End Sub
[/vba]
Макрос заточен под отсутствие объединённых ячеек в первой колонке. При их наличии результат непредсказуем — от просчёта не всех таблиц до вылета с Type mismatch.

Автор - StoTisteg
Дата добавления - 19.03.2016 в 18:49
KuklP Дата: Суббота, 19.03.2016, 19:39 | Сообщение № 18
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Для неведомого числа таблиц без разрывов, которые неведомо где начинаются и кончаются:
А попроще?
[vba]
Код
Sub www()
    Dim m&, a As Range
    m = ActiveSheet.UsedRange.Columns(1).Column + ActiveSheet.UsedRange.Columns.Count
    For Each a In [a:a].SpecialCells(2).Areas
        Cells(a.Row, m) = a.Rows.Count
    Next
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Для неведомого числа таблиц без разрывов, которые неведомо где начинаются и кончаются:
А попроще?
[vba]
Код
Sub www()
    Dim m&, a As Range
    m = ActiveSheet.UsedRange.Columns(1).Column + ActiveSheet.UsedRange.Columns.Count
    For Each a In [a:a].SpecialCells(2).Areas
        Cells(a.Row, m) = a.Rows.Count
    Next
End Sub
[/vba]

Автор - KuklP
Дата добавления - 19.03.2016 в 19:39
StoTisteg Дата: Суббота, 19.03.2016, 20:13 | Сообщение № 19
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Тогда уж
[vba]
Код
Sub www()
    Dim m&, a As Range
    m = ActiveSheet.UsedRange.Columns(1).Column + ActiveSheet.UsedRange.Columns.Count
    On Error Resume Next
    For Each a In [a:a].SpecialCells(2).Areas
        If Err.Number <> 0 Then Exit For
        Cells(a.Row, m) = a.Rows.Count
    Next
End Sub
[/vba]
yes


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеТогда уж
[vba]
Код
Sub www()
    Dim m&, a As Range
    m = ActiveSheet.UsedRange.Columns(1).Column + ActiveSheet.UsedRange.Columns.Count
    On Error Resume Next
    For Each a In [a:a].SpecialCells(2).Areas
        If Err.Number <> 0 Then Exit For
        Cells(a.Row, m) = a.Rows.Count
    Next
End Sub
[/vba]
yes

Автор - StoTisteg
Дата добавления - 19.03.2016 в 20:13
KuklP Дата: Суббота, 19.03.2016, 20:22 | Сообщение № 20
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Зачем? На случай если в листе нет таблиц в а:а? А вдруг юзер файл случайно удалит?
Даны 2 таблицы, расположенные одна под другой. Нужно посчитать сколько строк в первой и второй, присвоив значения переменным.
Ответ дал еще в №4. Мы ведь не рассматриваем, как уберечься от недолугих юзверей. А при желании из этого макроса можно сделать размазню на 10 страниц. B)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЗачем? На случай если в листе нет таблиц в а:а? А вдруг юзер файл случайно удалит?
Даны 2 таблицы, расположенные одна под другой. Нужно посчитать сколько строк в первой и второй, присвоив значения переменным.
Ответ дал еще в №4. Мы ведь не рассматриваем, как уберечься от недолугих юзверей. А при желании из этого макроса можно сделать размазню на 10 страниц. B)

Автор - KuklP
Дата добавления - 19.03.2016 в 20:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет количества строк в 2 таблицах (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!