Я запрашиваю диаграмму на листе и вижу, что она есть, но каждый раз, когда я выполняю следующий фрагмент кода, он оценивается как «Ничего». Это почему?
Sub DeleteGraph()
Dim graph As ChartObject
On Error Resume Next
'graph always evaluates to Nothing
graph = ActiveSheet.ChartObjects("frontier").Activate
If Not (graph Is Nothing) Then 'graph always evaluates to Nothing
ActiveSheet.ChartObjects("frontier").Activate
ActiveChart.Parent.Delete
End If
End Sub
Этот макрос выполняется при нажатии кнопки на листе, на котором выполняется следующий макрос Initialize, который сбрасывает все вычисления и стирает любой график, если он существует:
Sub InitializeSheet()
'Get number of projects on worksheet and the corresponding 'final' cell number/ref to use in calculations - Private/Module Variables
projectCount = Application.WorksheetFunction.Count(Range("A:A"))
lastCell = projectCount + 1
DeleteGraph 'Above Macro called here
'Clear previous calculation data
Range("I:AD").Value = ""
End Sub
Мне нужно удалить график, созданный макросом при сбросе / инициализации листа. Я проверяю, существует ли график (и пользователь не удалил его вручную) перед выполнением удаления. По какой-то причине я не могу заставить это работать. Что я пропускаю?