以编程方式对行或列进行分组和取消分组

ass*_*ias 5 excel vba excel-vba excel-2010

有没有办法在Excel 2010中以编程方式对列或行进行分组/取消组合?

注意:

  • "manual"命令位于Data> Outline> Group/Ungroup中
  • 在excel 2003中,这曾经起作用:someSheet.columns(i).ShowDetail = True / False但它在2010年不再适用于组(仅适用于数据透视表和小计分组)
  • 录制宏不会产生任何我可以使用的代码

更确切地说,myRange.ShowDetail = True在Excel 2010中调用会扩展折叠组,但如果组已经展开,则会引发错误.而ShowDetail属性返回True,该组是展开还是不行.

ass*_*ias 5

在 Excel 2010 中,ShowDetail无论组是折叠还是展开,该属性始终返回 true。Hidden可以使用该属性来代替:

'to expand
If myRange.EntireColumn.Hidden Then
    myRange.EntireColumn.ShowDetail = True
End If

'to collapse
If Not myRange.EntireColumn.Hidden Then
    myRange.EntireColumn.ShowDetail = False
End If
Run Code Online (Sandbox Code Playgroud)