Группировка строк
parshin71
Дата: Понедельник, 22.06.2015, 13:12 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
20% ±
Excel 2010
Хочется сгруппировать строки в макросе в несколько блоков, чтобы блок №1 был в развернутом виде, а все остальные в свернутом, как это можно сделать Пока у меня это добро в виде [vba]Код
Rows(14 + 34 * (nk - 1) & ":" & 19 + 34 * (nk - 1)).Select Selection.Rows.Group Rows(21 + 34 * (nk - 1) & ":" & 23 + 34 * (nk - 1)).Select Selection.Rows.Group Rows(25 + 34 * (nk - 1) & ":" & 26 + 34 * (nk - 1)).Select Selection.Rows.Group Rows(28 + 34 * (nk - 1) & ":" & 34 + 34 * (nk - 1)).Select Selection.Rows.Group
[/vba] Может как-то по другому можно сделать?
Хочется сгруппировать строки в макросе в несколько блоков, чтобы блок №1 был в развернутом виде, а все остальные в свернутом, как это можно сделать Пока у меня это добро в виде [vba]Код
Rows(14 + 34 * (nk - 1) & ":" & 19 + 34 * (nk - 1)).Select Selection.Rows.Group Rows(21 + 34 * (nk - 1) & ":" & 23 + 34 * (nk - 1)).Select Selection.Rows.Group Rows(25 + 34 * (nk - 1) & ":" & 26 + 34 * (nk - 1)).Select Selection.Rows.Group Rows(28 + 34 * (nk - 1) & ":" & 34 + 34 * (nk - 1)).Select Selection.Rows.Group
[/vba] Может как-то по другому можно сделать? parshin71
Ответить
Сообщение Хочется сгруппировать строки в макросе в несколько блоков, чтобы блок №1 был в развернутом виде, а все остальные в свернутом, как это можно сделать Пока у меня это добро в виде [vba]Код
Rows(14 + 34 * (nk - 1) & ":" & 19 + 34 * (nk - 1)).Select Selection.Rows.Group Rows(21 + 34 * (nk - 1) & ":" & 23 + 34 * (nk - 1)).Select Selection.Rows.Group Rows(25 + 34 * (nk - 1) & ":" & 26 + 34 * (nk - 1)).Select Selection.Rows.Group Rows(28 + 34 * (nk - 1) & ":" & 34 + 34 * (nk - 1)).Select Selection.Rows.Group
[/vba] Может как-то по другому можно сделать? Автор - parshin71 Дата добавления - 22.06.2015 в 13:12
Manyasha
Дата: Понедельник, 22.06.2015, 13:39 |
Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация:
902
±
Замечаний:
0% ±
Excel 2010, 2016
Можно так, например:[vba]Код
Rows(21 + 34 * (nk - 1) & ":" & 23 + 34 * (nk - 1)).Rows.Group Rows(25 + 34 * (nk - 1) & ":" & 26 + 34 * (nk - 1)).Rows.Group Rows(28 + 34 * (nk - 1) & ":" & 34 + 34 * (nk - 1)).Rows.Group Sheets(1).Outline.ShowLevels rowLevels:=1 Rows(14 + 34 * (nk - 1) & ":" & 19 + 34 * (nk - 1)).Rows.Group
[/vba]
Можно так, например:[vba]Код
Rows(21 + 34 * (nk - 1) & ":" & 23 + 34 * (nk - 1)).Rows.Group Rows(25 + 34 * (nk - 1) & ":" & 26 + 34 * (nk - 1)).Rows.Group Rows(28 + 34 * (nk - 1) & ":" & 34 + 34 * (nk - 1)).Rows.Group Sheets(1).Outline.ShowLevels rowLevels:=1 Rows(14 + 34 * (nk - 1) & ":" & 19 + 34 * (nk - 1)).Rows.Group
[/vba] Manyasha
ЯД: 410013299366744 WM: R193491431804
Ответить
Сообщение Можно так, например:[vba]Код
Rows(21 + 34 * (nk - 1) & ":" & 23 + 34 * (nk - 1)).Rows.Group Rows(25 + 34 * (nk - 1) & ":" & 26 + 34 * (nk - 1)).Rows.Group Rows(28 + 34 * (nk - 1) & ":" & 34 + 34 * (nk - 1)).Rows.Group Sheets(1).Outline.ShowLevels rowLevels:=1 Rows(14 + 34 * (nk - 1) & ":" & 19 + 34 * (nk - 1)).Rows.Group
[/vba] Автор - Manyasha Дата добавления - 22.06.2015 в 13:39
KSV
Дата: Понедельник, 22.06.2015, 14:02 |
Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
[vba]Код
Rows(14 + 34 * (nk - 1) & ":" & 19 + 34 * (nk - 1)).Group Rows(21 + 34 * (nk - 1) & ":" & 23 + 34 * (nk - 1)).Group Rows(25 + 34 * (nk - 1) & ":" & 26 + 34 * (nk - 1)).Group Rows(28 + 34 * (nk - 1) & ":" & 34 + 34 * (nk - 1)).Group ActiveSheet.Outline.ShowLevels 1 ' сворачиваем все группы Rows(19 + 34 * (nk - 1)).ShowDetail = True ' разворачиваем первую группу
[/vba]
[vba]Код
Rows(14 + 34 * (nk - 1) & ":" & 19 + 34 * (nk - 1)).Group Rows(21 + 34 * (nk - 1) & ":" & 23 + 34 * (nk - 1)).Group Rows(25 + 34 * (nk - 1) & ":" & 26 + 34 * (nk - 1)).Group Rows(28 + 34 * (nk - 1) & ":" & 34 + 34 * (nk - 1)).Group ActiveSheet.Outline.ShowLevels 1 ' сворачиваем все группы Rows(19 + 34 * (nk - 1)).ShowDetail = True ' разворачиваем первую группу
[/vba] KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Ответить
Сообщение [vba]Код
Rows(14 + 34 * (nk - 1) & ":" & 19 + 34 * (nk - 1)).Group Rows(21 + 34 * (nk - 1) & ":" & 23 + 34 * (nk - 1)).Group Rows(25 + 34 * (nk - 1) & ":" & 26 + 34 * (nk - 1)).Group Rows(28 + 34 * (nk - 1) & ":" & 34 + 34 * (nk - 1)).Group ActiveSheet.Outline.ShowLevels 1 ' сворачиваем все группы Rows(19 + 34 * (nk - 1)).ShowDetail = True ' разворачиваем первую группу
[/vba] Автор - KSV Дата добавления - 22.06.2015 в 14:02
parshin71
Дата: Понедельник, 22.06.2015, 14:11 |
Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
20% ±
Excel 2010
Спасибо, но сейчас сворачивает все, а желательно избранные блоки.
Спасибо, но сейчас сворачивает все, а желательно избранные блоки. parshin71
Ответить
Сообщение Спасибо, но сейчас сворачивает все, а желательно избранные блоки. Автор - parshin71 Дата добавления - 22.06.2015 в 14:11
parshin71
Дата: Понедельник, 22.06.2015, 14:22 |
Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
20% ±
Excel 2010
[vba]Код
Rows(19 + 34 * (nk - 1)).ShowDetail = True
[/vba] не разворачивает первый блок.
[vba]Код
Rows(19 + 34 * (nk - 1)).ShowDetail = True
[/vba] не разворачивает первый блок. parshin71
Ответить
Сообщение [vba]Код
Rows(19 + 34 * (nk - 1)).ShowDetail = True
[/vba] не разворачивает первый блок. Автор - parshin71 Дата добавления - 22.06.2015 в 14:22
Manyasha
Дата: Понедельник, 22.06.2015, 14:33 |
Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация:
902
±
Замечаний:
0% ±
Excel 2010, 2016
тогда так:[vba]Код
Rows(14 + 34 * (nk - 1) & ":" & 19 + 34 * (nk - 1)).Group Rows(21 + 34 * (nk - 1) & ":" & 23 + 34 * (nk - 1)).Group Rows(25 + 34 * (nk - 1) & ":" & 26 + 34 * (nk - 1)).Group Rows(28 + 34 * (nk - 1) & ":" & 34 + 34 * (nk - 1)).Group Rows(23 + 34 * (nk - 1)).ShowDetail = False Rows(26 + 34 * (nk - 1)).ShowDetail = False Rows(34 + 34 * (nk - 1)).ShowDetail = False
[/vba] Если не правильно, показывайте в файле что и где должно свернуться.
тогда так:[vba]Код
Rows(14 + 34 * (nk - 1) & ":" & 19 + 34 * (nk - 1)).Group Rows(21 + 34 * (nk - 1) & ":" & 23 + 34 * (nk - 1)).Group Rows(25 + 34 * (nk - 1) & ":" & 26 + 34 * (nk - 1)).Group Rows(28 + 34 * (nk - 1) & ":" & 34 + 34 * (nk - 1)).Group Rows(23 + 34 * (nk - 1)).ShowDetail = False Rows(26 + 34 * (nk - 1)).ShowDetail = False Rows(34 + 34 * (nk - 1)).ShowDetail = False
[/vba] Если не правильно, показывайте в файле что и где должно свернуться. Manyasha
ЯД: 410013299366744 WM: R193491431804
Ответить
Сообщение тогда так:[vba]Код
Rows(14 + 34 * (nk - 1) & ":" & 19 + 34 * (nk - 1)).Group Rows(21 + 34 * (nk - 1) & ":" & 23 + 34 * (nk - 1)).Group Rows(25 + 34 * (nk - 1) & ":" & 26 + 34 * (nk - 1)).Group Rows(28 + 34 * (nk - 1) & ":" & 34 + 34 * (nk - 1)).Group Rows(23 + 34 * (nk - 1)).ShowDetail = False Rows(26 + 34 * (nk - 1)).ShowDetail = False Rows(34 + 34 * (nk - 1)).ShowDetail = False
[/vba] Если не правильно, показывайте в файле что и где должно свернуться. Автор - Manyasha Дата добавления - 22.06.2015 в 14:33
parshin71
Дата: Понедельник, 22.06.2015, 14:39 |
Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация:
0
±
Замечаний:
20% ±
Excel 2010
Спасибо большое, все заработало.
Ответить
Сообщение Спасибо большое, все заработало. Автор - parshin71 Дата добавления - 22.06.2015 в 14:39
KSV
Дата: Понедельник, 22.06.2015, 14:40 |
Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация:
255
±
Замечаний:
0% ±
Excel 2013
значит вы перенастраивали структуру (сняли галочку с "итоги в строках под данными"), поэтому для управления блоком указывайте номер не последней, а первой строки блоки, вот так: [vba]Код
Rows(14 + 34 * (nk - 1)).ShowDetail = True ' разворачиваем только первую группу Rows(14 + 34 * (nk - 1)).ShowDetail = False ' сворачиваем только первую группу
[/vba]
значит вы перенастраивали структуру (сняли галочку с "итоги в строках под данными"), поэтому для управления блоком указывайте номер не последней, а первой строки блоки, вот так: [vba]Код
Rows(14 + 34 * (nk - 1)).ShowDetail = True ' разворачиваем только первую группу Rows(14 + 34 * (nk - 1)).ShowDetail = False ' сворачиваем только первую группу
[/vba] KSV
KSV.VBA@gmail.com Яндекс.Деньги: 410011921213333
Ответить
Сообщение значит вы перенастраивали структуру (сняли галочку с "итоги в строках под данными"), поэтому для управления блоком указывайте номер не последней, а первой строки блоки, вот так: [vba]Код
Rows(14 + 34 * (nk - 1)).ShowDetail = True ' разворачиваем только первую группу Rows(14 + 34 * (nk - 1)).ShowDetail = False ' сворачиваем только первую группу
[/vba] Автор - KSV Дата добавления - 22.06.2015 в 14:40