切换以隐藏所有列,但根据单元格值取消隐藏



我想用一个切换按钮来隐藏和取消隐藏列,基于一个名为("Quotes")的单元格中的值(在1到10之间)。

我在第一次点击时隐藏了所有的列,但在第二次点击时,他们都回来了,没有检查("引号")单元格内的值。

如何检查("引号")单元格中的值,然后只取消隐藏所需的列。

下面的VBA代码隐藏了我想隐藏的列,但当切换时,它们都回来了。

Private Sub ShowHideTemplate_Click()
If ShowHideTemplate.Value Then
Worksheets("Sheet1").Range("L:M,Q:R,V:W,AA:AB,AF:AG,AK:AL,AP:AQ,AU:A,AZ:BA,BE:BG,BJ:BL").EntireColumn.Hidden = False
ShowHideTemplate.Caption = "Full"
Else
Worksheets("Sheet1").Range("L:M,Q:R,V:W,AA:AB,AF:AG,AK:AL,AP:AQ,AU:AV,AZ:BA,BE:BG,BJ:BL").EntireColumn.Hidden = True
ShowHideTemplate.Caption = "Hidden"
End If
End Sub

我希望unhide函数检查一个名为("Quotes")的单元格是否有1到10之间的数字,然后根据该数字取消隐藏列。

if ("Quotes") = "1" then only unhide ("L:M")
if ("Quotes") = "2" then unhide ("L:M,Q:R,BJ:BL")
if ("Quotes") = "3" then unhide ("L:M,Q:R,V:M,BJ:BL")
if ("Quotes") = "4" then unhide ("L:M,Q:R,V:M,AA:AB,BJ:BL")
if ("Quotes") = "5" then unhide ("L:M,Q:R,V:M,AA:AB,AF:AG,BJ:BL")
if ("Quotes") = "6" then unhide ("L:M,Q:R,V:M,AA:AB,AF:AG,AK:AL,BJ:BL")
if ("Quotes") = "7" then unhide ("L:M,Q:R,V:M,AA:AB,AF:AG,AK:AL,AP:AQ,BJ:BL")
if ("Quotes") = "8" then unhide ("L:M,Q:R,V:M,AA:AB,AF:AG,AK:AL,AP:AQ,AU:AV,BJ:BL")
if ("Quotes") = "9" then unhide ("L:M,Q:R,V:M,AA:AB,AF:AG,AK:AL,AP:AQ,AU:AV,AZ:BA,BJ:BL")
if ("Quotes") = "10" then unhide (ALL) ("L:M,Q:R,V:M,AA:AB,AF:AG,AK:AL,AP:AQ,AU:AV,AZ:BA,BJ:BL")

您可以使用Select Case Range("Quotes").Value语句,其中"Quotes"是一个命名范围。例如:

Private Sub ShowHideTemplate_Click()
If ShowHideTemplate.Value Then

Select Case Range("Quotes").Value
Case Is = 1
Worksheets("Sheet1").Range("L:M").EntireColumn.Hidden = False
Case Is = 2
Worksheets("Sheet1").Range("L:M,Q:R,BJ:BL").EntireColumn.Hidden = False
Case Is = 3
Worksheets("Sheet1").Range("L:M,Q:R,V:M,BJ:BL").EntireColumn.Hidden = False
' and so on ...
End Select

'Worksheets("Sheet1").Range("L:M,Q:R,V:W,AA:AB,AF:AG,AK:AL,AP:AQ,AU:A,AZ:BA,BE:BG,BJ:BL").EntireColumn.Hidden = False
'Modify as you wish:
ShowHideTemplate.Caption = "Full"
Else
Worksheets("Sheet1").Range("L:M,Q:R,V:W,AA:AB,AF:AG,AK:AL,AP:AQ,AU:AV,AZ:BA,BE:BG,BJ:BL").EntireColumn.Hidden = True
ShowHideTemplate.Caption = "Hidden"
End If
End Sub

最新更新