【问题标题】:Hide Object Based on Cell Value根据单元格值隐藏对象
【发布时间】:2020-03-27 23:36:53
【问题描述】:

我在电子表格中有一个对象(即一个名为“形状”的矩形),我想根据单元格值 (A1) 隐藏它。这是我在互联网上搜索后尝试过的,但它不起作用。抱歉,无论如何我都不是 VBA 专家。根据网络搜索,我通常能够应付自如,但这个让我很难过。

Private Sub HideShape(ByVal Target As Range)
    If Target.Row = 1 And Target.Column = 1 Then _
        Me.Shapes("Shape").Visible = (Cells(1, 1).Value = 1)
End Sub

我实际上有六个对象,我想根据六个单元格值类似地处理。这是我尝试过的代码:

Private Sub Worksheet_Calculate()
    Me.Shapes("ProjMgmt").Visible = (Me.Cells(101, 3).Value = 0)
    Me.Shapes("Planning").Visible = (Me.Cells(102, 3).Value = 0)
    Me.Shapes("Implementation").Visible = (Me.Cells(103, 3).Value = 0)
    Me.Shapes("Supplier").Visible = (Me.Cells(104, 3).Value = 0)
    Me.Shapes("Process").Visible = (Me.Cells(105, 3).Value = 0)
    Me.Shapes("Customer").Visible = (Me.Cells(106, 3).Value = 0)
End Sub

它适用于一种形状,但不适用于这六种形状。

【问题讨论】:

  • 您是否尝试使用Worksheet_Change 事件?如果是这样,您不能将Worksheet_Change 更改为HideShape
  • 感谢您的意见。有没有我可以用来获得相同结果的宏?
  • HideShape改回Worksheet_Change
  • 哇!那行得通!非常感谢 BigBen!
  • 我如何在这个板上正式感谢你?

标签: excel vba shapes


【解决方案1】:

如果您尝试使用Worksheet_Change 事件,则不能将Worksheet_Change 更改为HideShape...它必须是Worksheet_Change

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 1 And Target.Column = 1 Then _
        Me.Shapes("Shape").Visible = (Me.Cells(1, 1).Value = 1)
End Sub

如果A1中有公式,那么你必须使用Worksheet_Calculate

Private Sub Worksheet_Calculate()
    Me.Shapes("Shape").Visible = (Me.Cells(1, 1).Value = 1)
End Sub

【讨论】:

  • 如何调整代码以对多个形状和单元格值执行相同的操作?我有六个形状,我想根据六个计算的单元格值变得可见或不可见。
  • 复制Me.Shapes("Shape").Visible = (Me.Cells(1, 1).Value = 1)这一行,修改Cells参数和期望值。
  • 嗨大本。我试过了,但它似乎不起作用:
  • Private Sub Worksheet_Calculate() Me.Shapes("ProjMgmt").Visible = (Me.Cells(101, 3).Value = 0) Me.Shapes("Planning").Visible = ( Me.Cells(102, 3).Value = 0) Me.Shapes("实施").Visible = (Me.Cells(103, 3).Value = 0) Me.Shapes("供应商").Visible = ( Me.Cells(104, 3).Value = 0) Me.Shapes("过程").Visible = (Me.Cells(105, 3).Value = 0) Me.Shapes("客户").Visible = ( Me.Cells(106, 3).Value = 0) 结束子
  • 也许可以根据您的尝试和遇到的错误(如果有)来编辑您的问题。
猜你喜欢
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2023-03-25
相关资源
最近更新 更多