excel - 使用单元格的值作为宏的一部分

标签 excel variables range cell defined

我通常使用宏来显示和隐藏使用复选框的列。
我通过定义宏代码中的列来设置它。

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


有任何想法吗?

最佳答案

这段代码应该可以解决问题:

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  

可能有更好的方法来确定哪些列需要隐藏 - 是否有任何特定的列决定是否应该隐藏它?

关于excel - 使用单元格的值作为宏的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52943832/

相关文章:

excel - 如何使 msgbox 成为变量并在错误处理程序上触发它?

regex - Excel宏替换部分字符串

PHP $_SESSION 变量不会取消设置

arrays - 在另一个数组中查找一个数组的值范围

javascript - 如何从选定范围中删除所有节点

arrays - 剥离列或行以形成一维数组

excel - 如果此公式中没有值,如何返回空白而不是 #N/A?

c - 为什么我们在整数除法中单独转换为 "float"?

python - 在 Pandas 中处理多位数的小数,

javascript - 动态创建的范围形式,只有最后一个范围有效,为什么?