我通常使用宏通过复选框显示和隐藏列。 我通过定义宏代码中的列进行设置。
Sub Hideshow() If Range("A1").Value = "True" Then ActiveSheet.Columns("B:C").Hidden = False ElseIf Range("A1").Value = "False" Then ActiveSheet.Columns("B:C").Hidden = True Else Return End If End Sub
对于此代码,A1 =复选框的结果(是/否) B:C是我隐藏的列,或者如果已经隐藏的列;显示。
但是,现在我正在对此做一个更动态的版本,因为在添加新列或更改列范围时,我无聊滚动宏代码并更改每个列引用。
我现在将要隐藏的列放在工作表的单元格A2中 例如B:C
我希望宏代码使用该单元格的值作为“定义范围”吗?显示和隐藏我在单元格A2中定义的列范围。
我发现了很多类似的帖子,但是它们略有不同,我无法使其适合我的特定情况。
新的看起来像这样
Sub Hideshow() If Range("A1").Value = "True" Then ActiveSheet.Columns(" The Value in A2 ").Hidden = False ElseIf Range("A1").Value = "False" Then ActiveSheet.Columns(" The Value in A2").Hidden = True Else Return End If End Sub
有什么想法吗?
答案 0 :(得分:0)
此代码应能解决问题:
Sub HideShow()
Dim ColsToHide As String
ColsToHide = Sheet1.Range("A2") 'This will always get the value from the sheet with the codename Sheet1.
'Unhide if hidden, hide if not hidden.
ActiveSheet.Columns(ColsToHide).Hidden = Not ActiveSheet.Columns(ColsToHide).Hidden
End Sub
也许有更好的方法来确定哪些列需要隐藏-列是否有任何特定的决定是否应该隐藏?