发布网友 发布时间: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