Форум по VBA, Excel и Word

VBA, Excel => VBA, макросы в Excel => Тема начата: Посетитель от 04 октября 2022, 04:58

Название: макрос на счет строк снизу вверх
Отправлено: Посетитель от 04 октября 2022, 04:58
Помогите пожалуйста хочу использовать функцию счет для сводной таблицы что бы узнать количество значений в колонке (обычная функция excel =СЧЁТ(C:C))

Хочу сделать макрос для автоматического счета после построения таблицы для этого сделал начало
   
    Range("B6").Select
    Cells(Rows.Count, "B").End(xlUp).Select
    ActiveCell.Offset(3, 1).Activate
   
не знаю как использовать функцию счет вверх для неизвестного числа строк

'       ActiveCell.FormulaR1C1 = "=COUNT(.End(xlUp).Select)"

такой вариант не работает

может кто знает как можно
Название: Re: макрос на счет строк снизу вверх
Отправлено: Администратор от 04 октября 2022, 15:29
Pачем вы используете эту строку:?
Range("B6").Select

Нужно подсчитать количество от ячейки B6 до последней ячейки в столбце B?
Название: Re: макрос на счет строк снизу вверх
Отправлено: Посетитель от 05 октября 2022, 02:37
да сводная таблица начинается с строки b6 диапазон динамический я не знаю сколько строк будет в сводной таблице, столбцов в таблице будет 110

что бы в ручную не прописывать (=счет) сделал начало найти первую строку спуститься вниз таблицы дальше застрял не знаю как прописать функцию счет до 6 строки вверх при динамическом диапазоне значений
Название: Re: макрос на счет строк снизу вверх
Отправлено: Администратор от 05 октября 2022, 06:28
Нужно подсчитать количество от ячейки B6 до последней ячейки в столбце B?
Название: Re: макрос на счет строк снизу вверх
Отправлено: Посетитель от 05 октября 2022, 06:34
Добрый день
в целом да
Название: Re: макрос на счет строк снизу вверх
Отправлено: Администратор от 05 октября 2022, 06:36
Я что-то упустил?
Название: Re: макрос на счет строк снизу вверх
Отправлено: Посетитель от 05 октября 2022, 07:44
Здесь получается

`переход к B ячейке

  Range("B6").Select

`спуститься вниз по колонке

    Cells(Rows.Count, "B").End(xlUp).Select

`сделать отступ от таблицы
    ActiveCell.Offset(3, 1).Activate
   
Потом хотел сделать счет вверх по колонке до 6 строки но можно и до самого верха, потом эту формулу продлить вправо на 110 ячеек

'       ActiveCell.FormulaR1C1 = "=COUNT(.End(xlUp).Select)"

Название: Re: макрос на счет строк снизу вверх
Отправлено: Администратор от 05 октября 2022, 09:31
Нужно подсчитать количество от ячейки B6 до последней ячейки в столбце B?
Или я что-то упускаю?
Название: Re: макрос на счет строк снизу вверх
Отправлено: Посетитель от 05 октября 2022, 09:41
Да, все верно, от b6 до последнего значения b
Название: Re: макрос на счет строк снизу вверх
Отправлено: Администратор от 05 октября 2022, 09:57
Написал вам два письма на почту с заголовком "Письмо с Форума по VBA, Excel и Word". Написал именно на почту, а не на форум.

Макрос
Sub Макрос()
   
    Dim lr As Long
   
    ' Поиск последней строки в столбце B.
        ' End не ищет в скрытых строках.
    lr = Cells(Rows.Count, "B").End(xlUp).Row
   
    ' Перемещение курсора-рамки в ячейку, в которую надо вставить формулу.
    Cells(lr, "B").Offset(3, 1).Activate
   
    ' Вставка формулы в активную ячейку.
    ActiveCell.Formula = "=COUNT(B6:B" & lr & ")"
   
End Sub
[свернуть]
Название: Re: макрос на счет строк снизу вверх
Отправлено: Посетитель от 05 октября 2022, 11:03
Большое спасибо
Работает, без относительных ссылок этот способ не будет работать ?)
Название: Re: макрос на счет строк снизу вверх
Отправлено: Администратор от 05 октября 2022, 12:20
Какие сейчас остались проблемы?
Упростил код в ответе #9, теперь ссылки относительные.
Название: Re: макрос на счет строк снизу вверх
Отправлено: Посетитель от 06 октября 2022, 04:38
Все работает большое спасибо