2013-05-30 2 views
1

VBA로 차트를 삭제하는 방법을 알 수 없습니다.VBA로 자식 차트 개체 삭제

시작 포인트 : Chart 1

  • :

    1. 하는 만들기 빈 통합 문서
    2. F11 키를 눌러 세 번 Chart1, Chart2Chart3
    3. , Chart2을 마우스 오른쪽 버튼으로 클릭에 차트 개체를 이동 만듭니다 Chart3에서 마우스 오른쪽 버튼을 클릭하고 차트, 개체 이동 : Chart 1

    어떤 VBA 코드가 에서 모든 차트 (Chart2Chart3)를 삭제할 예정입니까?

    시도 :

    '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 
    
  • 답변

    2

    당신이 차트 것을 삭제할 수 없습니다 것으로 보인다. 그 이유는 차트가 잠겨있어 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 
    
    +0

    (스티븐에 의해가), 나는 또 다른'Worksheet'로 이동'Chart'을 삭제할 수는 다음과 같이

    가능한 코드가 될 수 있습니다. 귀하의 답변을 편집하여 귀하의 제안에 따라 코드 샘플을 포함 시켰습니다. 고맙습니다! – Steven