Excel 2007中的dynamic图

我想在Excel中绘制我的表格的结果。 这里是我有的代码:

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个值。我该怎么做?

新浪,我不确定你的问题是什么,但在这一行:

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

你要指定第12行被绘制。而不是!$ 12:$ 12你可以有!$ C $ 12:$ L $ 12这将设置范围从C3到L12。如果你想dynamic设置行,你可以使用:

 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得到$ C $ 12,从endColX得到$ L $ 12。剩下的就是直接使用下面的代码:

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

我希望这可能会有所帮助。

干杯,