gpt4 book ai didi

excel - 如何使用按钮隐藏/取消隐藏列?

转载 作者:行者123 更新时间:2023-12-04 20:49:10 26 4
gpt4 key购买 nike

我创建了多个切换按钮来隐藏/显示列,以获得每月收入。我需要的是当用户按下任何两个或更多按钮时,例如,如果按下一月和三月按钮,那么应该只显示 (B:F) 和 (N:R) 列并且隐藏重置列.基本上它就像通过切片器过滤,换句话说,无论用户按下多少,他们应该能够在页面的开头看到那些特定月份的列,并且重置是隐藏的。
问题:切换按钮所做的只是相应地隐藏/显示某些列,我还需要用户只能看到他按下的列。
请找到excel表的链接:
https://1drv.ms/x/s!Av2jQlwHZCT3gj7BPSjUvAnWbXgs?e=XuKB6T

最佳答案

我尝试了一下,因为这对我来说有点有趣。将所有这些代码放入您的工作表模块中:

Private Sub ToggleButton1_Click()
HideColumns (1)
End Sub

Private Sub ToggleButton2_Click()
HideColumns (2)
End Sub

Private Sub ToggleButton3_Click()
HideColumns (3)
End Sub

Private Sub ToggleButton4_Click()
HideColumns (4)
End Sub

Private Sub ToggleButton5_Click()
HideColumns (5)
End Sub

Private Sub ToggleButton6_Click()
HideColumns (6)
End Sub

Private Sub ToggleButton7_Click()
HideColumns (7)
End Sub

Private Sub ToggleButton8_Click()
HideColumns (8)
End Sub

Private Sub ToggleButton9_Click()
HideColumns (9)
End Sub

Private Sub ToggleButton10_Click()
HideColumns (10)
End Sub

Private Sub ToggleButton11_Click()
HideColumns (11)
End Sub

Private Sub ToggleButton12_Click()
HideColumns (12)
End Sub

Sub HideColumns(MonthID As Integer)

Dim ColRng As Variant, i As Long, ToggleCount As Long

ColRng = Array("B:G", "H:M", "N:S", "T:Y", "Z:AE", "AF:AK", "AL:AQ", "AR:AW", "AX:BC", "BD:BI", "BJ:BO", "BP:BU", "B:BU")

Columns(ColRng(12)).Hidden = True
Dim ctl As OLEObject
For Each ctl In Me.OLEObjects
If Left(ctl.Name, 6) = "Toggle" Then
i = Mid(ctl.Name, 13)
If ctl.Object.Value = True Then
Columns(ColRng(i - 1)).Hidden = False
ToggleCount = ToggleCount + 1
End If
End If
Next

If ToggleCount = 0 Then
Columns(ColRng(12)).Hidden = False
End If

End Sub
注意事项:
  • 我基于你的项目(我下载了它)所以一切都应该是正确的。
  • ColRng
  • 是每个月的列列表,按 1 月到 12 月的顺序排列。
  • 请记住,因为没有指定工作表,这将在事件工作表上进行更改。
  • 点击事件中的数字(例如 HideColumns (1) )是月份数。我看到你按顺序排列了按钮,所以 ToggleButton1等于一月。

  • 我已将 togglecount 保存到该范围但已更改,因此不需要它,它只是在继续之前检查哪些列已经隐藏。这样代码是自依赖的。
    编辑:我已将代码更新为不同的方式。这种新方法要简单得多,只需循环切换按钮本身。它隐藏所有列,然后循环通过按钮检查它们是否被切换。

    关于excel - 如何使用按钮隐藏/取消隐藏列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68824572/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com