【问题标题】:Hiding Rows based on named cell range value?基于命名单元格范围值隐藏行?
【发布时间】:2013-03-25 08:21:17
【问题描述】:

我想创建一个宏来查看命名单元格范围的值并根据该命名单元格中的值隐藏/取消隐藏单元格。 我有一个数据验证列表,可以从中选择(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

这样的事情怎么办?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    更改以下内容:

    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)"。

    【讨论】:

      猜你喜欢
      • 2019-04-06
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2020-01-24
      • 1970-01-01
      相关资源
      最近更新 更多