2010-05-24 5 views
0

각 행의 차트를 만드는 일부 Visual Basic 코드가 있습니다.동적 차트 시리즈 레이블

.SeriesCollection (1) .Values ​​= "="& Ws.Name & & CurrRow & "C3 : R" "R!"& CurrRow & "C8"

그것은이 코드를 사용하여 일련의 값을 설정

제가 고심하고있는 것은 시리즈 라벨을 어떻게 설정합니까? 계열 레이블은 항상 첫 번째 행이되고 해당 열에 표시됩니다. 나는 이것이 위의 코드보다 훨씬 간단하다는 것을 알고 있지만, 나는 혼란 스럽다.

도움을 주시면 감사하겠습니다.

답변

1

.SeriesCollection (1) .ApplyDataLabels 메서드에서 Ws.Range ("C1 : H1") 값을 사용하십시오.

는 Y 값과 같은 행입니다
.SeriesCollection(1).Name = "=" & Ws.Name & "!R" & CurrRow & "C2" 

, 열은 Y 값이 시작하기 전에 : 나는 Y 값에 대한 명령에서 같은데요

+0

이은을 시리즈 라벨이 아닌 데이터 라벨. –

+0

예, OP가 실제로 요구했던 것입니다. –

+0

데이터 레이블에 범위를 사용할 수있는 기능은 Excel 2013까지 사용할 수 없었습니다. OP는 그가 게시했을 때 2010 년 이후 버전을 사용하지 못했을 것입니다. Excel 2013에서도 ApplyDataLabels 메서드에서 범위를 할당 할 수 없으므로 다른 단계에서 범위를 추가해야합니다. 이전 버전에서는 각 레이블의 텍스트를 독립적으로 채워야했습니다. –

0

, 당신이 원하는.

0

제 첫 번째 대답은 시리즈 이름을 묻는 질문을 해석했습니다. 데이터 라벨에 범위를 사용하려면 조금 까다 롭습니다.

당신은 엑셀 2013이있는 경우, 직접 범위를 지정할 수 있습니다 : 당신이 이전 버전의 Excel이있는 경우

With .SeriesCollection(1) 
    .ApplyDataLabels 
    With .DataLabels 
    .Format.TextFrame2.TextRange.InsertChartField _ 
     msoChartFieldRange, "='" & Ws.Name & "'!R1C3:R1C8", 0 
    .ShowRange = True 
    .ShowValue = False 
    End With 
End With 

을, 당신은 라벨을 단계별로해야합니다.

이 레이블에 세포의 정적 텍스트 할당 : 이것은 해당 셀에 각 레이블을 연결

Dim iPt As Long 
Dim rLabels As Range 

Set rLabels = Ws.Range(Ws.Cells(1, 3), Ws.Cells(1, 8)) 

With .SeriesCollection(1) 
    .ApplyDataLabels 
    For iPt = 1 To .Points.Count 
    .Points(iPt).DataLabel.Text = rLabels.Cells(iPt).Text 
    Next 
End With 

를, 그래서 라벨이 세포의 변경 사항 반영

Dim iPt As Long 
Dim rLabels As Range 

Set rLabels = Ws.Range(Ws.Cells(1, 3), Ws.Cells(1, 8)) 

With .SeriesCollection(1) 
    .ApplyDataLabels 
    For iPt = 1 To .Points.Count 
    .Points(iPt).DataLabel.Text = "=" & rLabels.Cells(iPt).Address(, , , True) 
    Next 
End With