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

Вход

Регистрация

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

 

= Мир MS Excel/Как выполнить группировку сразу до второго уровня? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как выполнить группировку сразу до второго уровня? (Макросы/Sub)
Как выполнить группировку сразу до второго уровня?
Начинающий Дата: Понедельник, 10.03.2014, 15:43 | Сообщение № 1
Группа: Гости
Доброго времени суток! С макросами столкнулся совсем недавно, поэтому очень нужна помощь. На форумах ответа найти не смог. Задача такова: необходимо макросом скрыть определенные столбцы (в макросе прописано сначала зануление столбцов и затем их группировка. В целом все работает, однако проблема в том, что макрос типа
Columns("B:C").Select
Selection.Columns.Group
группирует только на уровень вперед, т.е. если столбец уже был сгруппирован, то он группируется на уровень выше. Получается что все столбцы группируются на разный уровень. Как сделать так, чтобы группировка этих столбцов была на одном уровне? Надеюсь понятно объяснил :)
 
Ответить
СообщениеДоброго времени суток! С макросами столкнулся совсем недавно, поэтому очень нужна помощь. На форумах ответа найти не смог. Задача такова: необходимо макросом скрыть определенные столбцы (в макросе прописано сначала зануление столбцов и затем их группировка. В целом все работает, однако проблема в том, что макрос типа
Columns("B:C").Select
Selection.Columns.Group
группирует только на уровень вперед, т.е. если столбец уже был сгруппирован, то он группируется на уровень выше. Получается что все столбцы группируются на разный уровень. Как сделать так, чтобы группировка этих столбцов была на одном уровне? Надеюсь понятно объяснил :)

Автор - Начинающий
Дата добавления - 10.03.2014 в 15:43
Stormy Дата: Понедельник, 10.03.2014, 15:59 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Цитата Начинающий, 10.03.2014 в 15:43, в сообщении № 1
Задача такова: необходимо макросом скрыть определенные столбцы

[vba]
Код
Columns("B:C").Select  
Selection.EntireRow.Hidden = True
[/vba]
Насчет группировки не понял


Место для рекламы.
 
Ответить
Сообщение
Цитата Начинающий, 10.03.2014 в 15:43, в сообщении № 1
Задача такова: необходимо макросом скрыть определенные столбцы

[vba]
Код
Columns("B:C").Select  
Selection.EntireRow.Hidden = True
[/vba]
Насчет группировки не понял

Автор - Stormy
Дата добавления - 10.03.2014 в 15:59
Начинающий Дата: Понедельник, 10.03.2014, 16:08 | Сообщение № 3
Группа: Гости
For fff = 10 To 170
hhh = Cells(1012, fff).Value
If hhh = "у" Then
Columns(fff).Select
Selection.ClearContents
Selection.Columns.Group
End If
Next fff
вот отрывок макроса. Он зануляет и группирует столбцы по критерию "у". Но некоторые столбцы уже включены в группировку изначально, а некоторые не сгруппированные. Получается, что часть столбцов макросом группируются до первого уровня, а часть до второго.
 
Ответить
СообщениеFor fff = 10 To 170
hhh = Cells(1012, fff).Value
If hhh = "у" Then
Columns(fff).Select
Selection.ClearContents
Selection.Columns.Group
End If
Next fff
вот отрывок макроса. Он зануляет и группирует столбцы по критерию "у". Но некоторые столбцы уже включены в группировку изначально, а некоторые не сгруппированные. Получается, что часть столбцов макросом группируются до первого уровня, а часть до второго.

Автор - Начинающий
Дата добавления - 10.03.2014 в 16:08
Michael_S Дата: Понедельник, 10.03.2014, 19:06 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Начинающий гость, регистрируйтесь и выкладывайте файл-пример (только не забудьте в правила заглянуть).
Без вашего примера говорить не о чем - только гадать...

upd.
возможно поможет такая "добавка":
[vba]
Код
For fff = 10 To 170   
   hhh = Cells(1012, fff).Value   
   If hhh = "у" Then   
   Columns(fff).Select   
   Selection.ClearContents   
             On Error Resume Next
             Selection.Columns.Ungroup '"добавка"
   Selection.Columns.Group   
   End If   
   Next fff
[/vba]


Сообщение отредактировал Michael_S - Понедельник, 10.03.2014, 19:15
 
Ответить
СообщениеНачинающий гость, регистрируйтесь и выкладывайте файл-пример (только не забудьте в правила заглянуть).
Без вашего примера говорить не о чем - только гадать...

upd.
возможно поможет такая "добавка":
[vba]
Код
For fff = 10 To 170   
   hhh = Cells(1012, fff).Value   
   If hhh = "у" Then   
   Columns(fff).Select   
   Selection.ClearContents   
             On Error Resume Next
             Selection.Columns.Ungroup '"добавка"
   Selection.Columns.Group   
   End If   
   Next fff
[/vba]

Автор - Michael_S
Дата добавления - 10.03.2014 в 19:06
RAN Дата: Понедельник, 10.03.2014, 21:04 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub q()
     a = Columns(Selection.Address(0, 0)).OutlineLevel
     Selection.Columns.Group
     If Columns(Selection.Address(0, 0)).OutlineLevel > a Then Columns(Selection.Address(0, 0)).OutlineLevel = a
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub q()
     a = Columns(Selection.Address(0, 0)).OutlineLevel
     Selection.Columns.Group
     If Columns(Selection.Address(0, 0)).OutlineLevel > a Then Columns(Selection.Address(0, 0)).OutlineLevel = a
End Sub
[/vba]

Автор - RAN
Дата добавления - 10.03.2014 в 21:04
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как выполнить группировку сразу до второго уровня? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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