根据单元格值隐藏图形

时间:2018-12-20 08:16:26

标签: excel excel-vba

我是Excel VBA的新手,我正在尝试使用VBA代码解决此问题。

基本上,我的工作表有12个图表和12个表。在任何给定时间,只有一个表将获取数据,并且仅应看到该图。其他11个图形应隐藏。

我已经尝试过了

Sub getchart()

    If Range("C1") = Vub Then
      ActiveSheet.ChartObjects("Chart_33").Visible = True
    Else
      ActiveSheet.ChartObjects("Chart_33").Visible = False
    End If

End Sub

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:2)

如果在更改单元格的值时需要图形从可见更改为不可见,则需要使用事件。

例如

Private Sub Worksheet_change(ByVal Target As Range)

If Target.Address = "$C$1" Then
  if target.value = "vub" then
    ActiveSheet.ChartObjects("Chart_33").Visible = True
  Else
    ActiveSheet.ChartObjects("Chart_33").Visible = False
  end if
End If

End Sub

此代码应插入放置图形的工作表的工作表模块中。表格模块可在侧栏中找到。

答案 1 :(得分:0)

您可以减少@MrML的答案:

Private Sub Worksheet_change(ByVal Target As Range)
    If Target.Address = "$C$1" Then
        ActiveSheet.ChartObjects("Chart_33").Visible = (target = "vub")
    End If
End Sub