2014-07-14 3 views
0

피벗 테이블에서 차트를 채우는 데 VBA를 사용하고 있습니다. 첫째로 (첫 번째 그림에서와 같이) 나는 달과 범주 (A, C, U 등)에 따라 값을 정렬합니다. 나중 (두 번째 그림에서와 같이), 나는 단지 범주별로 정렬하고 싶다.VBA 생성 Excel 차트의 레이블 (?). 또한 정렬/채색

심한 두통에 대한 근본적인 문제는 내가 상위 그림에 달이있는 것처럼 스테이플 아래에 카테고리 이름을 넣고 싶다는 것입니다. 어떤 이유로 첫 번째 카테고리의 이름 (가장 큰 가치를 가진 카테고리) 만 표시됩니다.

나는 인터넷 검색을 시도했지만 레이블 (?)이 무엇인지 불분명합니다. ApplyDataLabels로 무언가를 시도했지만 꽤 올바르지 않습니다. 그것은 스테이플 위에 레이블을 추가했습니다. 나는 X 축 아래에서 그들을 원한다.

또 다른 주목할 점은 차트 사이에서 다르게 정렬하더라도 동일한 범주가 항상 같은 색을 가지기를 바랍니다 (월별 이름과 이름, 나중에 표시됨). 그게 가능한가? (나중에 알파벳순으로 첫 번째 차트 범주를 정렬하려고합니다.)

미리 감사드립니다. 레이블에 대한 enter image description here

답변

0

이 코드를 시도 :

Dim myarray As Variant 
myarray = Array("A", "B", "C") 
ActiveChart.SeriesCollection(1).XValues = myarray 

이 배열의 값에 범주 축 레이블을 설정합니다. 시리즈의 XValues는 당신이 찾고있는 것입니다. 여러 시리즈가있는 것 같지만 상위 코드는 여전히 작동해야합니다.

두 번째 질문은 시리즈의 색상은 차트에 시리즈를 추가하는 순서에 따라 설정됩니다. 따라서 항상 같은 순서로 차트에 시리즈를 추가 할 수 있습니다. 또 다른 옵션은 차트의 모든 시리즈를 반복하고 시리즈 이름에 따라 색상을 지정하는 절차를 갖는 것입니다. 다음 줄에있는 항목 :

For i = 1 To ActiveChart.SeriesCollection.Count 
    If (ActiveChart.SeriesCollection(i).Name = "A") Then 
     ActiveChart.SeriesCollection(i).Format.Fill.ForeColor.RGB = RGB(255, 0, 0) 
    End If 
Next 
+0

답장을 보내 주셔서 감사합니다. 실제로 XValue 원하는 범위로 설정하지만 첫 번째 값만 반환합니다. 두 번째 문제에 대한 제안을 나중에 시도해 보겠습니다. 덕분에 많은 도움이되었습니다. – Emmy