我有以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = TRUE
If Target.Address(0, 0) = "B6" Then
Application.EnableEvents = FALSE
If Target.Value = "Yes" Then
Call GraphOn
Else
Call GraphOff
End If
Application.EnableEvents = TRUE
End If
End Sub
其中GraphOn和graphhoff模块定义如下:
Option Explicit
Sub GraphOn()
Sheet1.Activate
If ActiveSheet.ChartObjects.Count > 0 Then
Sheet1.ChartObjects.Delete
End If
Sheet1.Range("H2:L49").Select
Sheet1.Shapes.AddChart2(227, xlLine).Select
With Sheet1.ChartObjects(1).Chart
' remove default chart title
.HasTitle = False
.HasTitle = True
.ChartTitle.Caption = "PD Graphs: " & Sheet1.Cells(2, 2).Value
End With
End Sub
和
Option Explicit
Sub GraphOff()
Sheet1.Activate
If ActiveSheet.ChartObjects.Count > 0 Then
Sheet1.ChartObjects.Delete
End If
End Sub
单元格B6是一个下拉列表,当设置为"Yes"它将生成一个标题为"PD Graphs: "的图表,加上单元格B2中的内容(B2也是一个下拉列表)。当我从B2中的下拉列表中选择一个项目并选择B6为"yes"时,我将得到具有正确标题的正确图形。但是,当我更改B2时,虽然图形正确更改,但标题没有更新,显示的是前一个标题。
我找到了下面的链接,它似乎与我的问题有关,但是我无法使它工作。
您可以在图表标题中使用单元格引用,因此可能最简单的方法是将标题链接到单元格-参见https://trumpexcel.com/dynamic-chart-titles-in-excel/
如
ActiveSheet.ChartObjects(1).Chart.ChartTitle.Caption = "=Test!R4C2"
注意小区地址是R1C1格式的:您可以设置一个单元格来包含完整的标题,然后链接到该单元格。