Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据单元格值对行进行分组-Excel VBA_Excel_Vba - Fatal编程技术网

如何根据单元格值对行进行分组-Excel VBA

如何根据单元格值对行进行分组-Excel VBA,excel,vba,Excel,Vba,我有一个项目列表,组织方式如下: (列“A”) 项目 活动 子活动 它们有一个特定的索引(在“B”列中) 项目索引=0 活动指数=1 子活动指数=2 示例数据如下所示: 列“A” 项目名称 活动1 子活动1 子活动2 活动2 活动3 子活动1 列“B” 0 1 2 2 1 1 2 我试过这个: Public Sub RaggruppaProgetto() Dim lvlData, rCel As Range Set lvlData = Range("B" &

我有一个项目列表,组织方式如下:

(列“A”)

  • 项目
  • 活动
  • 子活动

它们有一个特定的索引(在“B”列中)

  • 项目索引=0
  • 活动指数=1
  • 子活动指数=2

示例数据如下所示:

列“A”

  • 项目名称
  • 活动1
  • 子活动1
  • 子活动2
  • 活动2
  • 活动3
  • 子活动1

列“B”

  • 0
  • 1
  • 2
  • 2
  • 1
  • 1
  • 2
我试过这个:

Public Sub RaggruppaProgetto()

  Dim lvlData, rCel As Range

  Set lvlData = Range("B" & TrovaInizioProgetti(activeCell), Range("B" & Rows.Count).End(xlUp))

  With lvlData
    On Error Resume Next
    .Rows.Ungroup
    .Rows.EntireRow.Hidden = False
    On Error GoTo 0
  End With

  For Each rCel In lvlData

    If rCel = "2" Then
      Rows(rCel.Row).Group
      rCel.EntireRow.Hidden = True
    End If

  Next

End Sub

我所期望的是,当宏运行时,所有级别2应分组在级别1下,所有级别1(级别2已分组)应分组在级别0下。

请注意,
Dim lvlData,rCel As Range
将lvlData初始化为
Variant
,而不是
Range
。而是使用
Dim lvlData作为范围,rCel作为范围
。也可以使用
rCel.Value2=“2”
而不是
rCel=“2”
。谢谢,我会尝试的。