Excel检查行是否为组的一部分

Excel检查行是否为组的一部分,excel,vba,Excel,Vba,我正在处理一个宏,以便在一个非常大的excel文档中创建一些订单。在对特定的选择进行了一些操作之后,我想检查在所选范围内是否有行已分组,如果是,则需要取消分组。在将所有行(可能是范围内的一些独立组,可能是一个大组,甚至根本不分组)解组后,需要将它们全部分组在一起。下面的代码部分从选择特定的范围开始,我认为解决方案是在该范围内循环并检查所有行,如果它们是组的一部分,则需要将它们解组。但我不知道如何将这个概念转化为工作代码:) 此外,下面还包括解组/分组操作之前的范围示例 Range(Cells(R

我正在处理一个宏,以便在一个非常大的excel文档中创建一些订单。在对特定的选择进行了一些操作之后,我想检查在所选范围内是否有行已分组,如果是,则需要取消分组。在将所有行(可能是范围内的一些独立组,可能是一个大组,甚至根本不分组)解组后,需要将它们全部分组在一起。下面的代码部分从选择特定的范围开始,我认为解决方案是在该范围内循环并检查所有行,如果它们是组的一部分,则需要将它们解组。但我不知道如何将这个概念转化为工作代码:) 此外,下面还包括解组/分组操作之前的范围示例

Range(Cells(Rstart, "H"), Cells(Rend, "H")).Select
Selection.Rows.Ungroup
Selection.Rows.Group

你的意思不太清楚。 无论如何,我想这会对你有所帮助

  • 选择完整的行

    Dim rng As Range
    Set rng = Selection
    rng.EntireRow.Select
    
  • 取消分组(例如)。 也许您可以使用
    Outlinelevel
    来确定行是否分组。 这将解组前20行中的行

    Sub x()
        Dim lngRow As Long
        For lngRow = 1 To 20
            If ActiveSheet.Rows(lngRow).OutlineLevel > 1 Then
                Do While ActiveSheet.Rows(lngRow).OutlineLevel > 1
                    ActiveSheet.Rows(lngRow).Ungroup
                Loop
            End If
        Next
    End Sub
    
  • 分组。 你已经知道怎么做了


  • 你想做什么还不太清楚。 无论如何,我想这会对你有所帮助

  • 选择完整的行

    Dim rng As Range
    Set rng = Selection
    rng.EntireRow.Select
    
  • 取消分组(例如)。 也许您可以使用
    Outlinelevel
    来确定行是否分组。 这将解组前20行中的行

    Sub x()
        Dim lngRow As Long
        For lngRow = 1 To 20
            If ActiveSheet.Rows(lngRow).OutlineLevel > 1 Then
                Do While ActiveSheet.Rows(lngRow).OutlineLevel > 1
                    ActiveSheet.Rows(lngRow).Ungroup
                Loop
            End If
        Next
    End Sub
    
  • 分组。 你已经知道怎么做了


  • 你尝试过的东西有什么不起作用?您所写的内容对我很有用(尽管您可以使用With语句,例如With Range(“A1:A11”)。行:。取消组:。组:结束于查看行的
    大纲
    级别。例如
    Sheet1.行(3).outlinelevel
    如果所选范围内没有任何组,则执行宏会生成错误消息。@DarrenBartrup Cook类似于Selection.Rows.outlinelevel=1?编辑,刚刚尝试过,这解决了我的问题,您可以将您的注释作为答案发布:)您尝试过的内容有什么不起作用?您所写的内容对我很有用(尽管您可以使用With语句,例如With Range(“A1:A11”)。行:。取消组:。组:结束于查看行的
    大纲
    级别。例如
    Sheet1.行(3).outlinelevel
    如果所选范围内没有任何组,则执行宏会生成错误消息。@DarrenBartrup Cook类似于Selection.Rows.outlinelevel=1?编辑,刚刚尝试过,这解决了我的问题,您可以将您的注释作为答案发布:)正在努力检查所有行是否为组的一部分,不知道“outlinelevel”,我只是先将所有行设置为outlinelevel 1,然后对它们进行分组。我正在努力检查所有行是否属于一个组,不知道“outlinelevel”,我只是先将所有行设置为outlinelevel 1,然后对它们进行分组。