Удалить дочерние ChartObjects с помощью VBA

Я не могу понять, как удалить диаграммы с помощью VBA.

Отправная точка:

  1. Создать пустую книгу
  2. Нажмите F11 три раза, чтобы создать Chart1 , Chart2 и Chart3
  3. Щелкните правой кнопкой мыши в Chart2 , Move Chart, Object in: Chart 1
  4. Щелкните правой кнопкой мыши в Chart3 , Move Chart, Object in: Chart 1

Какой код VBA удалит все диаграммы ( Chart2 и Chart3 ) из Chart1 ?

Попытки:

 'Try 1: Run-time error -2147024809 (80070057): ' The specified value is out of range. Sheets("Chart1").ChartObjects.Delete 'Try 2: (Same error) Charts("Chart1").ChartObjects.Delete 

Кажется, что вы не можете удалить эти диаграммы. Причина в том, что диаграмма заблокирована, и ее невозможно разблокировать ни из VBA, ни из приложения.

Единственное обходное решение, которое я выяснил, это: 1. переместить его на любой рабочий лист, 2. удалить его.

Возможный код может быть следующим:

 Dim myCHART As Chart Set myCHART = Sheets("Chart1") myCHART.ChartObjects(1).Select ActiveChart.Location Where:=xlLocationAsObject, Name:=Worksheets(1).Name Worksheets(1).Shapes(Worksheets(1).Shapes.Count).Delete 

Обновленный код: (Стивен)

 Do While Charts("Chart1").ChartObjects.Count > 0 Charts("Chart1").ChartObjects(1).Chart.Location xlLocationAsObject, _ Worksheets(1).Name Worksheets(1).Shapes(Worksheets(1).Shapes.Count).Delete Loop 
  • Как я могу остановить макрос от разгруппировки и прятать строки самостоятельно
  • excel issue - вычисление формул не происходит автоматически
  • Excel: фиксированная позиция кнопки
  • Справочная внешняя книга с несколькими листами
  • Excel изменить макрос для «данных из текста», чтобы открыть диалоговое окно?
  • Как обновить ссылки на ячейки при перемещении ячеек в один лист в качестве целевого?
  • Выбор списка валидации данных VBA
  • Форматирование существующих ячеек Excel в формат времени без даты
  • Порядок пересчета Excel - почему зависимая ячейка вычисляет перед предыдущей ячейкой?
  • Как объединить несколько макросов VBA в один файл надстройки для Excel
  • Поиск, совпадение и возврат с помощью Excel?
  • Давайте будем гением компьютера.