在循环浏览VBA中的Excel文件中的行时,是否可以确定该行是否使用展开和折叠选项进行分组?
使用下面的图像作为示例,如果脚本循环使用下面的Excel工作表作为输入,我需要能够确定是否对第7,9,13和21行进行了分组(具有展开和折叠选项)。
关于如何实现这一目标的任何想法?
答案 0 :(得分:0)
您可以使用的是:
'r would be the row position
Rows(r).OutlineLevel
如果它将返回行轮廓级别的值,如图像左侧的1 2 3列中所示。
修改强>
在此comment中包含来自OP的要求,需要忽略具有Totals的行,可以包含以下脚本:
'r being the row and 1 refering to Column 1 which is Column A
SearchString = Cells(r, 1)
If InStr(1, SearchString, "Total") > 0 Then
'Insert Script here to do what you need to do to skip the row
Else
'Insert script here to execute on the rows which are not totals
End If
答案 1 :(得分:0)
每行都有.outlineLevel
属性,告诉您应用的分组级别。在我的示例中,您可以看到sub循环指定的行数和打印在所选范围内的每一行上应用的分组数。
没有分组的行有outlineLevel
1
Sub isGrouped()
Dim targetSheet As Worksheet
Set targetSheet = Sheets("nameYourSheet")
Dim rowCounter As Long
With targetSheet
For rowCounter = 1 To 50
Debug.Print .Rows(rowCounter).OutlineLevel
Next rowCounter
End With
End Sub