Excel 如何检查图表是否已创建

Excel 如何检查图表是否已创建,excel,vba,Excel,Vba,我使用以下命令通过vba添加图表: Dim CsvVisualization As ChartObject Set ChartSizePosition = Range("B8:I25") Set CsvVisualization = ThisWorkbook.Sheets("Übersicht").ChartObjects.Add(ChartSizePosition.Left, ChartSizePosition.Top, ChartSizePosition.Width, ChartSizePo

我使用以下命令通过vba添加图表:

Dim CsvVisualization As ChartObject
Set ChartSizePosition = Range("B8:I25")
Set CsvVisualization = ThisWorkbook.Sheets("Übersicht").ChartObjects.Add(ChartSizePosition.Left, ChartSizePosition.Top, ChartSizePosition.Width, ChartSizePosition.Height)
CsvVisualization.Name = "MeasurementVisualization"
With CsvVisualization.Chart
    .ChartType = xlXYScatterSmoothNoMarkers
...
当excel文件重新打开时,我如何证明此图表是否已创建?我试过这样的方法:

If CsvVisualization Is Nothing Then
但是,当文件关闭并再次打开时,CsvVisualization将无法保持其价值


谢谢你的帮助

打开工作表时,您可以查看工作簿中的所有图表,以查看具有该名称的图表是否已存在:

Private Sub Workbook_Open()
    Dim testChart As ChartObject

    For Each testChart In ThisWorkbook.Charts
        If testChart.Name = "MeasurementVisualization" Then
            'Chart exists, so do something or not or whatever or what have you
        End If
    Next
End Sub

如果引用对象会出现错误,可以尝试

On Error Resume Next
Set CurrentChart = thisworkbook.sheets("Übersicht").ChartObjects("MeasurementVisualization")
On Error GoTo 0

If IsEmpty(CurrentChart) Then
MsgBox "Not found"
Else
CurrentChart.Activate
End If

你可以用创建图表来替换If中的代码。…

@FreeMan我喜欢你只是在OP关心的选项卡中查看图表。我只是漫不经心地看了看所有这些。我基本上是从我目前正在做的一个项目中复制了这些代码,然后把他的图表创建位放在那里。。。
On Error Resume Next
Set CurrentChart = thisworkbook.sheets("Übersicht").ChartObjects("MeasurementVisualization")
On Error GoTo 0

If IsEmpty(CurrentChart) Then
MsgBox "Not found"
Else
CurrentChart.Activate
End If