0

我希望仅在满足条件时才出现图表。更准确地说:我有一个更改图表内容的下拉菜单。如果单击菜单点“总收入”,我希望显示第二个图表。我是 VBA 的新手,到目前为止,这是我想出的:

Sub Iffuntion()
Dim SelectedChart As Range
Dim notVisible As Boolean
If Range("D100").Value = Range("E100").Value Then
ActiveSheet.ChartObjects("Testchart").Visible = True
Else
ActiveSheet.ChartObjects("Testchart").Visible = notVisible
End If
End Sub

它可以工作,但我必须执行 VBA 才能使图表出现/消失,我希望这会自动发生。此外,该条件最终应该在另一个工作表中,以使带有图表的工作表保持整洁。我读到要实现这一点,我必须激活另一个工作表。您会推荐这种方式还是有更好的解决方案?

感谢您的帮助和最诚挚的问候!皮特

编辑:这是带有 Cor_Blimey 建议解决方案的示例文件的链接,我无法正常工作。excel 中的互连比它们必须要复杂的多,但我希望尽可能准确地显示我的 excel 中实际发生的事情。谢谢参观!

https://dl.dropboxusercontent.com/u/18406645/sample.xlsm

4

1 回答 1

0

假设您的意思是它们从数据验证下拉列表中更改单元格的内容,那么您可以将代码放入 Worksheet 的 Worksheet_Change 事件中。当用户更改单元格的内容(或通过外部链接)时会触发此事件。

然后测试单元格是否是正确的单元格,然后运行您的代码。

喜欢:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    Set rng = Intersect(Target, Me.Range("D100"))
    If Not rng Is Nothing Then
        If rng.Value = Me.Range("E100").Value Then
            Me.ChartObjects("Testchart").Visible = True
        Else
            Me.ChartObjects("Testchart").Visible = False
        End If
    End If
End Sub
于 2013-08-26T10:46:05.047 回答