MSDN > 論壇首頁 > Visual Basic for Applications (VBA) > Grouping and unGrouping colums
發問發問
 

已答覆Grouping and unGrouping colums

  • Wednesday, 8 July, 2009 15:08John Basedow 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     
    I need to group and colapse view or expand group, i dont want to group a colm if it is already, how can i tell if that column is grouped and if so show or not show?  
    McC

解答

  • Thursday, 9 July, 2009 15:03suznal 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     已答覆包含代碼
    To tell if a column is grouped, use the OutlineLevel property. If the level is greater than one it is part of a group...

    If Worksheets("Sheet1").Columns(2).OutlineLevel > 1 Then
        Range("A1").Value = "This column is part of a group"
    End If
    
    This can obviously be modified to loop through all columns on a sheet or a range as you need.

    To Hide or unhide use ShowLevels...

    ActiveSheet.Outline.ShowLevels RowLevels:=1
    
    The above will collapse all groups, leaving just Level 1 visible (level one are not part of groups).
    If there are three levels in the outline and you select 2 as RowLevels, level 2 will be visible but level three will be hidden (grouped).
    If you specify a number greater than the number of levels in an outline then all levels will be visible.

    This should get you started.



    "The new phonebooks are here!"

所有回覆

  • Thursday, 9 July, 2009 15:03suznal 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     已答覆包含代碼
    To tell if a column is grouped, use the OutlineLevel property. If the level is greater than one it is part of a group...

    If Worksheets("Sheet1").Columns(2).OutlineLevel > 1 Then
        Range("A1").Value = "This column is part of a group"
    End If
    
    This can obviously be modified to loop through all columns on a sheet or a range as you need.

    To Hide or unhide use ShowLevels...

    ActiveSheet.Outline.ShowLevels RowLevels:=1
    
    The above will collapse all groups, leaving just Level 1 visible (level one are not part of groups).
    If there are three levels in the outline and you select 2 as RowLevels, level 2 will be visible but level three will be hidden (grouped).
    If you specify a number greater than the number of levels in an outline then all levels will be visible.

    This should get you started.



    "The new phonebooks are here!"
  • Thursday, 9 July, 2009 15:04John Basedow 使用者勳章使用者勳章使用者勳章使用者勳章使用者勳章
     
    Thanks thats exactly what i was looking for.

    BTW  DIE GAS PUMPER!!!!!        <-- This is a joke, do not call the FBI or the MSBI or ban me from the site!

    McC