2011-12-15 40 views
0

我在VBA中創建了此代碼,以根據單張頁面的值創建餅圖(這些值是從學生列表數據庫導入的),我想要的值轉換成餅圖都涉及到性別欄,在此列中的值可以爲「M」或「F」,這是我試過的代碼:將列中的值單列到圖表中

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值(如果我有3名男學生和2名女學生,圖表顯示5個值)

我希望我的圖表只顯示2個結果,一個用於M值和F值。

回答

1

我假設你的投入是這樣的:

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

,你想是這樣的:

enter image description here

圖表不會 「凝聚M和F」,即它不會爲你計算M和F的總數。你必須自己做,例如使用=COUNTIF($E$7:$E$13,"=M")=COUNTIF($E$7:$E$13,"=F"),這將導致這樣的事情:

M 3 
F 4 

這個你可以繪製餅圖類似上面。

沒有看到你的表,我不能告訴你爲什麼你的「範圍不工作」,但是這個代碼肯定對我的作品:

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 
相關問題