2010-10-10 41 views
1

我想在Excel中繪製我的表格的結果。這裏是我有的代碼:excel 2007中的動態圖表

Sub bow() 
' 
' bow Macro 
' 

' 
Worksheets("Sheet3").Select 
tahX = Cells(3, 3).Value + 2 
Xval = Offset(A1, 1, 2, 1, 1) 
    ActiveSheet.Shapes.AddChart.Select 
    ActiveChart.SetSourceData Source:=Range("'Sheet3'!$12:$12,'Sheet3'!$10:$10") 
    ActiveChart.ChartType = xlXYScatter 
    ActiveChart.SeriesCollection(1).Name = "=""bowe""" 
    ActiveChart.SeriesCollection(1).XValues = "='Sheet3'!$12:$12" 
    ActiveChart.SeriesCollection(1).Values = "='Sheet3'!$10:$10" 
End Sub 

現在我想將X值限制爲在單元格C3中定義的值。例如,如果C3 = 20,我希望它只使用行號12中的前20個值。我該怎麼做?

回答

1

新浪, 我不知道究竟你的問題是什麼,但在這一行:

ActiveChart.SeriesCollection(1).XValues = "='Sheet3'!$12:$12" 

您指定行12是plotted.Instead $ 12!$ 12,你可以有$ C $ 12:$ L $ 12,將C3設置範圍L12。如果你想設置的行動態,你可以使用:

Set mcStartX = Worksheets(1).Cells(12, 3) 
startColX = mcStartX.Address() 
//we assume that in cell C3 we have specified number of cells to be plotted 
toAdd = Cells(3, 3).Value 
Set mcEndX = Worksheets().Cells(12, 2 + toAdd) 
endColX = mcEndX.Address() 

使用此代碼,並假設你已經在C3 10,你會得到startColX $ 12,endColX $ 12。剩下的就是直接你可以使用下面的代碼:

ActiveChart.SeriesCollection(1).XValues = "='Sheet3'!" + startColX + ":" + endColX 

我希望這可能會有所幫助。

乾杯,