繁体   English   中英

根据命名的单元格范围值隐藏行?

[英]Hiding Rows based on named cell range value?

我想创建一个宏来查看命名单元格范围的值,并基于该命名单元格中的值隐藏/取消隐藏单元格。 我有一个经过数据验证的列表,可以从中选择(a)是,并且(b)否,如果用户选择命名单元格“选择”(单元格“ A1”),则(a)是,那么必须隐藏第5-10行,否则必须将其隐藏。 宏不需要查看整个单元格的值,就像“(a)是”中那样,它只能查看“(a)”

到目前为止,这是我的代码,但会产生一个错误,提示

未设置对象变量或带块变量

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Cell As Range

Cell = Range("Select")

If Target.Address = Cell Then
    Select Case Left$(Cell.Value, 3)
        Case "(a)"
            Rows("5:10").Hidden = True
    End Select
Else 
    Rows ("5:10").Hidden = False
End If
End Sub

怎么会这样?

更改以下内容:

Cell = Range("Select")

变成:

Set Cell = Range("Select")

此外,如果进行比较,您将无法获得预期的结果:

Target.Address = Cell

永远不会被满足。 请尝试以下操作:

Target.Address = Cell.Address

还有一个建议。 您可以将ifselect条件合并为一个:

If Target.Address = Cell.Address And Left$(Cell.Value, 3) = "(a)" Then

最后,请记住,由于VBA中的区分大小写,因此“(a)” <>“(A)”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM