2011-12-15 7 views
0

VBA에서이 코드를 사용하여 단일 시트 페이지 값 (학생 목록 데이터베이스에서 가져온 값), 원하는 값열에서 차트로 단일 값을 출력합니다.

Sub CriarGrafico() 
Set graficos = Sheets(3).ChartObjects 
On Error Resume Next 
If Not graficos Is Nothing Then graficos.Delete 
'elimina os graficos existentes na folha 8 
Set Grafico = graficos.Add(0, 100, 500, 250) 
Grafico.Chart.ChartWizard _ 
Source:=Sheets(2).Range("E7:E13"), _ 
Gallery:=xlPie, _ 
CategoryLabels:=1, _ 
SeriesLabels:=1, _ 
HasLegend:=True 

, 내가 여기에 두 가지 문제가 우선 : 성 열 관련된 파이 차트로 전환하면,이 열에 값 중 하나를 'M'또는 'F'할 수있다, 이것은 내가 노력 코드입니다 내 범위가 작동하지 않는 것 같아요, 하나의 단일 column에서 값만 사용하고 있기 때문에 추측하고 있습니다. 둘째, 두 번째 열을 포함 시키려고하면 차트가 M 및 F를 집계하지 않습니다. 가치 (그래서 나는 남자 학생과 여자 학생이 3 학년 인 경우 차트에 5 개의 값이 표시됩니다.)

내 차트에 단순히 M 값과 F 값에 대한 결과 2 개를 표시하고 싶습니다.

Student1 M 
Student2 F 
Student3 F 
Student4 F 
Student5 M 
Student6 M 
Student7 F 

당신이 뭔가를 원하는 : 나는 당신의 입력을 믿고있어

답변

1

은 다음과 같습니다

enter image description here

차트 것, 즉 그것을하지 "덩어리 M과 F", M과 F의 총 수를 계산하지 않습니다.

M 3 
F 4 

이 위의 같은 파이 차트로 플롯 할 수 있습니다 : 당신은 이런 일이 발생할 것이다, =COUNTIF($E$7:$E$13,"=M")=COUNTIF($E$7:$E$13,"=F")를 사용하여 예를 들어, 자신을 그렇게해야합니다.

당신의 시트 당신의 "범위가 작동하지 않습니다"내가 왜 당신을 말할 수를 보지 않고

하지만,이 코드는 확실히 나를 위해 작동 :

Dim Grafico As ChartObject 
Dim s As Series 
Set Grafico = Sheets(3).ChartObjects.Add(0, 100, 500, 250) 
With Grafico.Chart 
    .ChartType = xlPie 
    .SetSourceData Source:=Sheets("Sheet3").Range("G8:H9") 
    .Location Where:=xlLocationAsObject, Name:=Sheets(3).Name 
End With 
관련 문제