VBA如何统一组合折叠或者展开sheet 11到sheet 53的某几列?

发布网友 发布时间:2024-10-23 22:54

我来回答

1个回答

热心网友 时间:2024-11-12 03:46

Sub 更新折叠区()

    Dim c%, m$, s$

    c = Month(Date) '获取当前月份

    s = "当前月份:" & c & "月"

    m = Split(Columns(c).Address(0, 0), ":")(0) '获取需展开的末列字母

    s = s & vbLf & "需要显示:A 至 " & m & " 列"

    If c < 12 Then '如果月份小于12时

        m = Split(Columns(c + 1).Address(0, 0), ":")(0) '获取需折叠的首列字母

        s = s & vbLf & "需要折叠:" & m & " 至 L 列"

    Else '否则,即月份等于12时

        s = s & vbLf & "需要折叠:" & "无"

    End If

    s = s & vbLf & vbLf & "是否更新折叠区?"

    If MsgBox(s, vbYesNo + 32) = vbNo Then Exit Sub '点击否,则退出sub

    '下面进行遍历处理

    On Error Resume Next '遇错时执行下一行(此句必须,不能省掉)

    Dim i%

    For i = 11 To 53

        With Sheets(i)

            .Columns("A:L").Columns.Ungroup  '12列全部取消组合

            .Columns("A:L").Hidden = False   '12列全部取消隐藏

            If c < 12 Then '如果月份小于12时

                .Columns(m & ":L").Columns.Group '该区域的列,创建组合

                .Columns(m & ":L").Hidden = True '该区域的列,启用隐藏

            End If

        End With

    Next

End Sub

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com