Страницы: 1
RSS
макрос на раскрытие и закрытие группировки
 
Здравствуйте,  
 
нужно написать такой макрос, что б при нажатии на кнопку открывалась и закрывалась группировка...файл приложил, заранее спасибо )))
 
А в 2007 макрорекордер это не пишет :-(
 
А что, кнопка с макросом будет удобнее, чем всё равно уже имеющийся (и никуда вы от него не денетесь) слева значок сворачивания/разворачивания группировки?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
мне-то конечно легче...но задача поставлена, выполнять надо...как сделать - не знаю, вот и прошу совета...  
 
ЗЫ вся работа ведется в 2003-ем
 
.
Живи и дай жить..
 
слэн,  
где вы такого набрались?  
 
Private Sub CommandButton1_Click()  
ActiveSheet.Outline.ShowLevels 1 - Rows(2).Hidden  
End Sub  
 
в одной строке из одной КОМАНДЫ ВЫЧИТАЕТЕ ДРУГУЮ КОМАНДУ!!!  
сижу, пялюсь, смотрю разные справки, НЕ ПОНИМАЮ КАК ЭТО РАБОТАЕТ!!!  
Но ведь работает же!
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
тут почитал, там почитал  
 
спасибо родителям, которые научили меня читать :)
Живи и дай жить..
 
ps там не вычитаются команды, это глыбже..  
 
при таком вызове метода после имени метода все считается параметром  
 
т.о. параметр  1 -rows(2).hidden  
 
вычислится, попутно преобразовав логическое значение в числовое(которое, кстати говоря, здесь понимается не так, как в икселе - здесь истина преобразуется в минус единицу)
Живи и дай жить..
 
Слэн, спасибо огромное )))    
PS тему прошу пока не закрывать, вдруг еще вопросы возникнут...мне ж это еще применить нужно...судя по коду - он абсолютно все группы сворачивает...постараюсь сам кнопку по уровням сделать...
 
нет, в этом написании получаются две команды: showlevel 0 - закрыть  
 
и showlevel 2  
 
в данном случае уровней всего два - первый и второй  
 
ноль преобразуется самим методом в единицу  
 
 
вот такая цепочка неявных преобразований..  
 
к сожалению как узнать текущий уровень я не знаю..
Живи и дай жить..
 
Спасибо за разъяснение.  
Вроде понял как сделано ЭТО.  
Просто  
  ActiveSheet.Outline.ShowLevels 1 - Rows(2).Hidden  
это до невозможности сокращенная запись:  
  ActiveSheet.Outline.ShowLevels rowLevels:=(1 - Rows(2).Hidden)  
Тогда получается, что если ряд 2 скрыт, то Rows(2).Hidden = True = -1, а следовательно:  
  ActiveSheet.Outline.ShowLevels rowLevels:=2 - показать уровень 2  
а если ряд 2 показан, то Rows(2).Hidden = False = 0, а следовательно:  
  ActiveSheet.Outline.ShowLevels rowLevels:=1 - показать уровень 1  
 
КРУТО!  
Но повторить такое при необходимости когда будет нужно точно не смогу :(
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
А разве не проходит?    
Rows(i).OutlineLevel  
Проходил по строкам, сосчитывал уровень группировки.
 
А не подскажите как по аналогии сделать так чтоб выводилась вся строчка 4 категории?
Страницы: 1
Читают тему
Наверх