2017-02-06 4 views
-1

macro의 이전 부분에서 전달 된 값을 기반으로 chart을 생성하려면 다음 코드를 작성해야합니다.누적 형 차트의 각 세그먼트에 데이터 레이블 추가

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 

그것은, 그러나, 나는 스택 그래프의 각 세그먼트에 숫자 data labels를 추가하는 좋은 싶습니다 작동합니다. 나는이 길의 일부를 얻을 수 있는지 확인하기 위해 다음 코드를 시도 :

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

이 작동하지 않습니다, 그리고 나는 property에 대해 너무 지식이 아닙니다으로는 놀라운 일이 아니다. 데이터 레이블을 어떻게 추가합니까?

+0

이''ChartObject'으로 정의 graph2'입니다? 제 생각에 당신은 오타가 있다고 생각합니다.'.HasDataLabels = True'가 아니라'.HasDataLabels -True'가되어야합니다. –

+0

오, 오히려 당황 스럽네요. 통어론을 찾아 주셔서 감사합니다. Graph2는'ChartObject'로 정의됩니다. 그 초기화를 추가하기 위해 업데이트했습니다. – Rivers31334

+0

아니면 분명히 'ChartObjects'로 말하고 말해야합니다. 이들이 다른지 확실치 않은 경우, 그렇다면 그 차이점 (ChartObject' 대 ChartObjects') – Rivers31334

답변

0

SeriesCollection은 속성의 구성원이며 ChartObject이 아닙니다.

ChartObject 
    | 
    > Chart 
     |  
     > SeriesCollection 

그래서 위의 코드는 아래의 코드를 사용 작동하려면 :

With graph2.Chart.SeriesCollection(1) 
    .HasDataLabels = True 
    .DataLabels.NumberFormat = "####.##" 
End With 
관련 문제