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

Вход

Регистрация

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

 

= Мир MS Excel/Группировка строк - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Группировка строк (Макросы/Sub)
Группировка строк
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
Дата добавления - 22.06.2015 в 13:12
Manyasha Дата: Понедельник, 22.06.2015, 13:39 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 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]


ЯД: 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]


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
Дата добавления - 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
Дата добавления - 22.06.2015 в 14:22
Manyasha Дата: Понедельник, 22.06.2015, 14:33 | Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 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]
Если не правильно, показывайте в файле что и где должно свернуться.


ЯД: 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]


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
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Группировка строк (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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