使用单元格的值作为宏的一部分
Use cell's value as part of macro
我通常使用宏来显示和隐藏使用复选框的列。
我通过在宏代码中定义列来设置它。
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 = 复选框的结果 (True/False)
和 B:C 是我隐藏的列,或者如果已经隐藏的话;正在显示。
但是,现在我正在制作一个更动态的版本,因为我厌倦了滚动浏览宏代码并在添加新列或更改列范围时更改每个列引用。
我现在已经将要隐藏的列放在 sheet 的单元格 A2 中
例如 B:C
我希望宏代码将该单元格的值用作 'defined range'?显示和隐藏我在单元格 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
可能有更好的方法来确定哪些列需要隐藏 - 是否有关于决定是否应该隐藏的列的具体内容?
我通常使用宏来显示和隐藏使用复选框的列。 我通过在宏代码中定义列来设置它。
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 = 复选框的结果 (True/False) 和 B:C 是我隐藏的列,或者如果已经隐藏的话;正在显示。
但是,现在我正在制作一个更动态的版本,因为我厌倦了滚动浏览宏代码并在添加新列或更改列范围时更改每个列引用。
我现在已经将要隐藏的列放在 sheet 的单元格 A2 中 例如 B:C
我希望宏代码将该单元格的值用作 'defined range'?显示和隐藏我在单元格 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
可能有更好的方法来确定哪些列需要隐藏 - 是否有关于决定是否应该隐藏的列的具体内容?