基于单元格值的动态隐藏列

问题描述 投票:0回答:1

我有一个工作表,其中包含一系列单元格(B15:BL15),其中的公式返回“显示”或“隐藏”。当我从窗体控件(不是ActiveX)组合框中进行选择,并且将以下宏分配给组合框时,这些值会更改。该宏应该根据单元格的值显示或隐藏列。

我第一次进行选择时,所有列最终都会隐藏,而与单元格中的值无关。当我再次选择它时,代码可以正常工作(即,我选择了选项A,并且范围内的所有列都被隐藏了。我选择了选项B,然后返回选项A,现在正确的列正在显示和隐藏。)我在这里缺少什么?

Option Explicit

Sub ShowHide()

Cells.Columns.EntireColumn.Hidden = False    ' Added to unhide all of the columns first.

Dim c As Range

For Each c In Range("B15:BL15").Cells        ' Range of cells containing the formulas

With c
    If .Value = "Hide" Then
       .EntireColumn.Hidden = True
    Else
        .EntireColumn.Hidden = False
    End If

End With

Next c

End Sub

非常感谢您的帮助!

excel vba show-hide
1个回答
0
投票

这很尴尬,但是嘿-必须以某种方式学习。感谢修复@FaneDuru我需要做的就是激活工作表。希望其他人觉得这很有用!

Option Explicit

Sub ShowHide()

    Sheet2.Activate
    Dim c As Range

    For Each c In Range("B15:BL15").Cells
With c
 If .Value = "Hide" Then
   .EntireColumn.Hidden = True
    Else
    .EntireColumn.Hidden = False
End If
End With
Next c

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.