2017-02-06 2 views
-1

Ich habe den folgenden Code, um eine chart für mich basierend auf Werten aus einem vorherigen Teil dieser macro übergeben.Hinzufügen von Datenbeschriftungen zu jedem Segment in Spalte gestapelten Diagramm

Set graph2 = graphSheet.ChartObjects.Add(Left:=200, Top:=200, Width:=450, Height:=300) 

    graph2.Chart.ChartWizard graphSheet.Range("A1:C5"), gallery:=xlColumnStacked, PlotBy:=xlColumns, serieslabels:=1, _ 
         HasLegend:=True, Title:="Cumulative Operating Portfolio", categorytitle:="Year", _ 
         valuetitle:="MW_dc", categorylabels:=1 

es funktioniert gut, aber ich würde numerische data labels jedes Segment des gestapelten Graphen hinzufügen. Ich habe versucht, den folgenden Code ein, um zu sehen, ob ich dort einen Teil des Weges bekommen kann:

With graph2.SeriesCollection(1) 
     .HasDataLabels -True 
     .DataLabels.NumberFormat = "####.##" 
    End With 

Das funktioniert nicht, und es ist nicht überraschend, da ich bin nicht allzu gut informiert über die property. Wie kann ich Datenbeschriftungen hinzufügen?

+0

Ist 'graph2' als' ChartObject' definiert? Ich denke du hast einen Tippfehler, es sollte ".HasDataLabels = True" sein und nicht ".HasDataLabels-True" –

+0

Oh, das ist ziemlich peinlich. Danke für den Syntaxfang. Graph2 ist als ein 'ChartObject' definiert. Ich habe aktualisiert, um diese Initialisierung hinzuzufügen. – Rivers31334

+0

Oder vielleicht sollte ich erklären und sagen, wie ein 'ChartObjects'. Sind Sie nicht sicher, ob diese unterschiedlich sind, und wenn ja, wie unterschiedlich sie sind ('ChartObject' vs.' ChartObjects') – Rivers31334

Antwort

0

Die SeriesCollection ist ein Mitglied der Chart Eigenschaften, und nicht die ChartObject.

ChartObject 
    | 
    > Chart 
     |  
     > SeriesCollection 

Also für Ihren obigen Code unten verwenden Sie den Code zu arbeiten:

With graph2.Chart.SeriesCollection(1) 
    .HasDataLabels = True 
    .DataLabels.NumberFormat = "####.##" 
End With 
Verwandte Themen