Excel VBA和组功能

Alex Zhulin

我有一些像这样的层级词典

在此处输入图片说明

并像这样将字典卸载到Excel文件中

在此处输入图片说明

现在,我必须以层级方式对Excel行进行分组。

我知道Excel具有range()。group函数。但是,有什么方法可以快速简便地完成操作,还是我必须扫描所有Excel文件并选择以手动方式分组的行?

拜伦·沃尔

我在一些虚拟示例上对此进行了测试,并且效果很好。想法是循环遍历您感兴趣的范围内的单元格,如果水平在当前单元格以下的行中更大,则将它们分组。它向下工作以构建层次结构。然后,您可以使用分组按钮显示不同的级别。

如果level列没有间断,则此代码有效(因为我使用Range.End来获取最后一个单元格)。

Sub GroupBasedOnLevel()

    Dim rng_cells As Range
    Dim rng_start As Range
    Dim rng_end As Range

    'set up some ranges, change rng_start to be appropriate
    Set rng_start = Range("A2")
    Set rng_end = rng_start.End(xlDown)
    Set rng_cells = Range(rng_start, rng_end)

    'clear previous outline
    Cells.ClearOutline

    'loop through level cells and group based on values below
    Dim cell As Range
    For Each cell In rng_cells

        'get value of cell and start checking below it
        Dim row_off As Integer
        row_off = 1

        'loop ensures level is greater below and cells are within range
        Do While cell.Offset(row_off) > cell And cell.Offset(row_off).Row <= rng_end.Row
            row_off = row_off + 1
        Loop

        'do the grouping if there are more than 1 cells below
        If row_off > 1 Then
            Range(cell.Offset(1), cell.Offset(row_off - 1)).EntireRow.Group
        End If
    Next cell
End Sub

结果

初始点

初始点

完整分组

完整分组

崩溃到1级

折叠组

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VBA Excel-变量“ Double”作为功能

来自分类Dev

在VBA和Excel中使用范围

来自分类Dev

Excel VBA脚本比较两组数据和ID排列

来自分类Dev

VBA Excel自动更改颜色和值

来自分类Dev

VBA Excel更改斜体并添加</和/>

来自分类Dev

简单功能中的奇怪输出-Excel VBA

来自分类Dev

Excel找不到VBA功能

来自分类Dev

Excel VBA和组功能

来自分类Dev

结合使用IF和Excel VBA

来自分类Dev

带IF的VBA Excel中的功能

来自分类Dev

For循环和If语句Excel VBA

来自分类Dev

具有AND / OR功能的VBA Excel If语句

来自分类Dev

在Excel VBA中查找功能

来自分类Dev

Excel VBA右功能错误

来自分类Dev

Excel公式/ VBA以检测一组行的属性

来自分类Dev

组和最大Excel表

来自分类Dev

Excel VBA-检查文本框组

来自分类Dev

Excel组文本框和图片

来自分类Dev

Excel和VBA关于形状

来自分类Dev

VBA Excel:用户定义的功能

来自分类Dev

Excel VBA添加超链接以组中的形状

来自分类Dev

Excel VBA复制和粘贴(不使用复制+粘贴功能)在空行上

来自分类Dev

Excel VBA复制和粘贴(不使用复制+粘贴功能)在空行上

来自分类Dev

具有下标超出范围错误的Excel VBA剪切和粘贴功能

来自分类Dev

圆形功能VBA EXCEL

来自分类Dev

Excel VBA-查找功能-查找变量

来自分类Dev

相当于ADDRESS功能的Excel VBA

来自分类Dev

具有拆分和复制功能的 Excel VBA 数据组织

来自分类Dev

VBA Excel 查找和计数