Return to VBA Code Examples
This tutorial will demonstrate how to group and ungroup rows and columns in VBA.
Group Rows or Columns
To group rows or columns apply the Group Method to the rows or columns:
Rows("3:5").Group
or
Columns("C:D").Group
Ungroup Rows or Columns
To ungroup the rows or columns, simply use the Ungroup Method:
Rows("3:5").Ungroup
or
Columns("C:D").Ungroup
Expand All “Grouped” Outline Levels
To expand all grouped outline levels, use this line of code:
ActiveSheet.Outline.ShowLevels RowLevels:=8, ColumnLevels:=8
To collapse all outline levels, use this line of code:
ActiveSheet.Outline.ShowLevels RowLevels:=1, ColumnLevels:=1
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Learn More!
0 / 0 / 0 Регистрация: 25.04.2006 Сообщений: 5 |
|
1 |
|
25.04.2006, 19:11. Показов 56908. Ответов 25
Помогите, пожалуйста, я так устала вручную группировать строки. Как написать макрос, чтобы в таблице EXCEL строки автоматом группировались по одинаковым названиям в первом столбце. Т.е. сбоку слева появлялся «плюсик» и можно было группу свернуть или развернуть. В первом столбце названия групп повторяются, а во втором столбце уже идут точные названия, т.е. в первом столбце ткань, а во втором м.б. и драп и ситец. Я хочу сделать группу по первому столбцу ткань.
0 |
3 / 3 / 0 Регистрация: 08.09.2011 Сообщений: 111 |
|
25.04.2006, 20:27 |
2 |
А нужен ли макрос, если есть встроенный инструмент?
0 |
0 / 0 / 0 Регистрация: 25.04.2006 Сообщений: 5 |
|
25.04.2006, 20:37 [ТС] |
3 |
Спасибо буду искать, что это такое
0 |
3 / 3 / 0 Регистрация: 08.09.2011 Сообщений: 111 |
|
25.04.2006, 20:53 |
4 |
По-русски это называется консолидация… http://www.firststeps.ru/
0 |
5 / 5 / 3 Регистрация: 17.10.2007 Сообщений: 1,119 |
|
25.04.2006, 21:03 |
5 |
lullul, Vi mozhete poprobovat’ sovet Tsveta. Vot vam esche odin: idite v menu [bold]Data/Pivot Table[/bold] … vladconn
0 |
0 / 0 / 0 Регистрация: 25.04.2006 Сообщений: 5 |
|
25.04.2006, 21:34 [ТС] |
6 |
Про консолидацию прочитала спасибо, но мне не надо сумировать и т.д. Мне надо просто огромную таблицу привести в более сжатый вид. Одинаковые позиции по первому столбцу сгруппировать так, чтобы сбоку слева появлялся «плюсик» и можно было группу свернуть или развернуть. Чтобы клиент мог сначала выбрать нужную группу в списке и только затем с помощью плюсика её развернуть и искать подробнее что ему надо. Я это обычно делаю в ручную с помощью меню Данные-группа и структура-группировать. Очень хочу эту процедуру автоматизировать
0 |
5 / 5 / 3 Регистрация: 17.10.2007 Сообщений: 1,119 |
|
25.04.2006, 22:01 |
7 |
lullul, Esche variant: MSHFLEXGRID i OLEDB data control! MSHFLEXGRID kak raz dlya vashej zadachi. vladconn
0 |
0 / 0 / 0 Регистрация: 25.04.2006 Сообщений: 5 |
|
25.04.2006, 22:20 [ТС] |
8 |
Всем спасибо, буду стараться
0 |
VladConn 5 / 5 / 3 Регистрация: 17.10.2007 Сообщений: 1,119 |
||||
25.04.2006, 22:23 |
9 |
|||
A, chto-to vrode etogo:
vladconn
0 |
Masalov 22 / 5 / 1 Регистрация: 05.09.2010 Сообщений: 370 |
||||
26.04.2006, 10:41 |
10 |
|||
Выделить ту часть листа где необходима массовая группировка и выполнить макрос:
0 |
rank1 |
||||
30.04.2006, 23:30 |
11 |
|||
У меня тут возникла сходная задачка — нужно было в зависимости от уровня группы в колонке группировать строки. Первое что пришло в голову:
|
rank1 |
|
30.04.2006, 23:31 |
12 |
Для работы необходимо подключить scrrun.dll — для Dictionary |
rank1 |
|
30.04.2006, 23:33 |
13 |
…и курсор должен стоять в той колонке где уровни вложенности указаны. |
Сумрак |
|
01.05.2006, 22:11 |
14 |
Сначала отсортировать придется для группировки… |
22 / 5 / 1 Регистрация: 05.09.2010 Сообщений: 370 |
|
02.05.2006, 11:11 |
15 |
Здесь еще пример группировки, но по номерам параграфа… http://relib.com/forums/Topic846792-11-1.aspx
0 |
0 / 0 / 0 Регистрация: 21.02.2014 Сообщений: 14 |
|
21.02.2014, 15:24 |
16 |
Доброго дня! Мне нужен макрос чтобы из разноцветных строк группировал только бесцветные. Кто-нибудь может мне помочь в этом.
0 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
21.02.2014, 15:31 |
17 |
Артем 1981, приложите пример.
1 |
0 / 0 / 0 Регистрация: 21.02.2014 Сообщений: 14 |
|
03.04.2014, 12:50 |
18 |
Приложил пример (2 вкладки). Макрос должен делать из таблицы во вкладке «до», таблицу такую как во вкладке «после», то есть группировать только строки без выделения цветом.
0 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
03.04.2014, 13:41 |
19 |
Артем 1981, почему группировка «вниз»? Строки 8,9 вроде относятся к 7?
0 |
0 / 0 / 0 Регистрация: 21.02.2014 Сообщений: 14 |
|
03.04.2014, 14:48 |
20 |
Да совершенно верно п.8,9 относятся к п.7, это у меня просто настройка такая.
0 |
Snaff Пользователь Сообщений: 8 |
Доброго времени суток. Столкнулся со следующей задачей: требуется с помощью макроса сгруппировать строки в обновляемой сводной таблице. Честно изучил много вопросов по данной теме. Ответа, к сожалению, самостоятельно не нашёл. |
Дорожный Пользователь Сообщений: 78 |
Так вам нужны итоги по группам или группировка строк по группам? |
gling Пользователь Сообщений: 4024 |
#3 29.05.2017 12:30:12
Так что группировка с промежуточными итогами не устраивает? Она же получается точно такая как и на листе «Как нужно видеть». На листе «Исходные данные» данные сделал пром итоги (На ленте Данные—Структура—Промежуточные итоги) Прикрепленные файлы
Изменено: gling — 29.05.2017 12:30:43 |
||
Snaff Пользователь Сообщений: 8 |
Дорожный, Группировка строк по группам. Технически вручную это выглядит так: я выделяю строки с каждой группой и группирую через Данные-Группировка. Изменено: Snaff — 29.05.2017 12:39:33 |
Snaff Пользователь Сообщений: 8 |
gling, спасибо за ответ. Нужно решение в виде макроса vba. — Поиск строк о значением «1 группа» — Поиск строк о значением «2 группа» — Поиск строк о значением «Без группы» |
gling Пользователь Сообщений: 4024 |
#6 29.05.2017 12:54:54
Включите запись макроса макрорекордером —Выделите весь диапазон — сортировка по столбцу А— На вкладке данные, структура—ПромИтоги—Выключайте запись макроса. При необходимости подкорректируйте, в плане диапазона (постоянный или выделенный) и вешайте на кнопку. Не так формируется? У меня получилось так
Изменено: gling — 29.05.2017 12:58:54 |
||||
Snaff Пользователь Сообщений: 8 |
gling, спасибо большое за ответ. Данное решение не подходит, так как требуется сгруппировать строки ИМЕННО в сводной таблице, как было указано в моём первом сообщении. |
gling Пользователь Сообщений: 4024 |
#8 29.05.2017 13:29:36
Раз так, тогда пробуйте макрос
Прикрепленные файлы
|
||||
Snaff Пользователь Сообщений: 8 |
gling, спасибо Вам большое. Макрос работает прекрасно. |
Snaff Пользователь Сообщений: 8 |
gling, а в случае если в одной группе всего один артикул. Пример прикладываю. |
gling Пользователь Сообщений: 4024 |
#11 29.05.2017 19:38:00 Может тогда такой подойдет?
|
||
Snaff Пользователь Сообщений: 8 |
gling, спасибо Вам большое за помощь. В случае, если мы также будем иметь в исходных данных помимо группы, еще и категорию. Пример прикладываю. |
4ynaka6pa Пользователь Сообщений: 1 |
#13 08.04.2020 10:16:33 не пойму почему макрос отказывается определять итоговые строчки по текстовым значением большого объема. Dim i As Boolean, Rw As Boolean |
Доброго времени суток дорогие посетители.
Тема сегодня будет не совсем самобытная и не большая. Я тут как то публиковал пост о том как группировать строки в Microsoft Excel вот здесь: http://profi-user.ru/gruppirivka-v-excel. Но там я забыл об одном очень важном моменте, не упомянул, о том что группировку можно выполнять автоматически. Я думаю нужно исправить этот пробел, в данной теме. Приступим.
Автоматизация с помощью кодов
Пора учиться использовать Excel по назначению в полной мере. Табличный редактор дает возможность автоматизировать повторяющиеся задачи, чтобы вы не делали одно и то же каждый раз.
Для этого используется программный язык Visual Basic. В нашем случае он позволит группировать и сразу сворачивать строки.
Это функция в Excel называется VBA группировка строк. Выполняется с помощью такого кода:
Чтобы его записать, необходимо во вкладке «Вид» нажать на кнопку «Макрос» и выбрать «Записать макроса».
Сделать это также можно через вкладку «Разработчик». Но, как правило, она не предусмотрена в меню по умолчанию, поэтому при желании добавьте ее вручную:
- Откройте Файл — Параметры — Настройка ленты;
- В группе «Основные вкладки» поставьте галочку возле той, что нам нужна, и нажмите «Ок».
В принципе всё, теперь нужно просто нажать на макрос два раза и мы видим как в нашем документе появились нужные нам группы, которые можно сворачивать и разворачивать:
Цифры значений
With Rows («2:5»)
.Rows (3)
Естественно выберите такие какие вам нужно.
На этом всё.
До встречи дорогие друзья, сохраняйте ссылку на этот сайт в закладки.