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

标签 vba excel excel-2010

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

注意:

  • “手动”命令位于数据 > 大纲 > 分组/取消分组
  • 在 Excel 2003 中,这曾经有效:someSheet.columns(i).ShowDetail = True/False 但在 2010 年,它不再适用于组(仅适用于数据透视表和小计分组) )
  • 录制宏不会生成任何我可以使用的代码

更准确地说,在 Excel 2010 中调用 myRange.ShowDetail = True 确实会展开折叠的组,但如果该组已展开,则会引发错误。无论组是否展开,ShowDetail 属性都会返回 True。

最佳答案

在 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

关于vba - 以编程方式对行或列进行分组和取消分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14838295/

相关文章:

vb6 - Visual Basic 6 检查正在运行的 Excel 实例

vba - 如何更改Excel中文档的名称?

对公式生成的值进行排序时,VBA 排序无法正常工作

vba - 使用不一致的分隔符拆分字符串

excel - Access VBA - XLS 后期绑定(bind),未找到变量

c# - ExcelDNA/托管 XLL/Excel 互操作

excel - 如何将函数用作参数?

excel - 使用VBA将工作表名称复制到行

excel - 在用户定义的函数中使用 .find 方法

python - 如何在 XLWings 中引用 Excel 表格列名称?