2017-07-29 3 views
1

ich einen Code zu schreiben versuchen, die von Plannamen über einen vordefinierten Array-Schleifen und tut smth jedes Diagramm Meine erste Vermutung warSchleife über Array eines Chart

Sub Select_Charts_On_Sheet() 
'Selects every chart on a sheet 

Dim c As Chart 
Dim ChartArray As Variant 
ChartArray = Array("Chart 1", "Chart 2", "Chart 3", "Chart 4") 
For Each c In Charts(ChartArray) 
    MsgBox (c.Name) 
Next c 

End Sub 

Doch es funktioniert nicht. Irgendwelche Vorschläge?

+2

Charts ist für Diagrammblätter. Sie können stattdessen ChartObjects verwenden https://stackoverflow.com/questions/36955925/loop-through-all-charts-in-a-workbook-with-vba – Slai

+0

Mögliche Duplikate von [Schleife durch alle Diagramme in einer Arbeitsmappe mit VBA] (https://stackoverflow.com/questions/36955925/loop-through-all-charts-in-a-workbook-with-vba) –

Antwort

1

Sie müssen die ChartObjects des Arbeitsblatts durchlaufen und nach jedem ChartObject.Name überprüfen, wenn es in Ihrem ChartArray gefunden wird.

-Code

Option Explicit 

Sub Select_Charts_On_Sheet() 
'Selects every chart on a sheet 

Dim ChtObj As ChartObject 
Dim ChartArray As Variant 

ChartArray = Array("Chart 1", "Chart 2", "Chart 3", "Chart 4") 

' loop through worksheet's chart objects 
For Each ChtObj In Worksheets("Sheet1").ChartObjects ' modify "Sheet1" with your sheet's name 
    MsgBox ChtObj.Name 

    ' use application match to see if current chart object name is inside the ChartArray (of names) 
    If Not IsError(Application.Match(ChtObj.Name, ChartArray, 0)) Then ' Match was successful 
     ChtObj.Select 
    End If 
Next ChtObj 

End Sub 
0

jedes Diagramm in einem Arbeitsblatt zu tun, es ist einfach:

Dim ChOb As ChartObject 
For Each ChOb In ActiveSheet.ChartObjects 
    With ChOb.Chart 
     ' do something to each chart 
    End With 
Next 

Alternativ:

Dim iCht As Long 
For iCht = 1 To ActiveSheet.ChartObjects.Count 
    With ActiveSheet.ChartObjects(i).Chart 
     ' do something to each chart 
    End With 
Next 
Verwandte Themen