我有一个工作表,其中包含一系列单元格(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
非常感谢您的帮助!
这很尴尬,但是嘿-必须以某种方式学习。感谢修复@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