VBA Excel – 基于特定条件的组行

我对VBA很陌生,我试图在Excel中创build代码,它将根据范围内的值(例如0)select行,并使用Excel中的组函数将它们组合在一起。 在下面的链接捕捉中,您可以看到我开始的位置(捕捉1)到我要去的位置(捕捉2)。

下面的代码是我select所有行为0的地方。不幸的是,当select多个不在一起的行时,我不能使用Group函数。

我不太清楚要在代码中添加什么,以便将第一组0分组,然后移动到下一组0,并执行相同的操作,直到达到范围的末尾。 我也想要跳过空白的单元格,例如附在屏幕截图的第13行。

Sub SelectGroupRows0() Dim c As Range Dim rng0 As Range Dim block As Range Set block = Range("B4:B23") For Each c In block If c = 0 Then If rng0 Is Nothing Then Set rng0 = c.EntireRow Set rng0 = Union(rng0, c.EntireRow) Else: End If Next c rng0.Select Selection.Rows.Group 

End Sub

任何帮助,将不胜感激。

提前致谢,

Q

在这里输入图像说明 在这里输入图像说明

你有一些Else If不是在正确的地方。

此外,您需要循环使用Union范围Areas来对其中的每一个进行分组。

注意 :您不需要使用rng0.Select和更高版本的Selection.Rows.Group

 Option Explicit Sub SelectGroupRows0() Dim c As Range Dim rng0 As Range Dim block As Range Set block = Range("B4:B23") For Each c In block If Not IsEmpty(c) And c.Value = 0 Then If rng0 Is Nothing Then Set rng0 = c Else Set rng0 = Union(rng0, c) End If End If Next c ' loop through your Range's Areas and group each one of them For Each c In rng0.Areas c.EntireRow.Group Next c End Sub