Excel检查行是否属于某个组

时间:2018-01-15 08:44:20

标签: excel vba

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

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

enter image description here

1 个答案:

答案 0 :(得分:1)

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

  1. 选择完整行

    Dim rng As Range
    Set rng = Selection
    rng.EntireRow.Select
    
  2. 取消分组(例如here)。 也许您可以使用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
    
  3. <强>组合即可。 你已经知道如何做到这一点。