excel2007中的动态图形

excel2007中的动态图形,excel,excel-2007,Excel,Excel 2007,我想在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,'She

我想在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的范围。如果要动态设置行,可以使用:

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
我希望这能有所帮助

干杯,新浪, 我不确定你的问题到底是什么,但在这方面:

ActiveChart.SeriesCollection(1).XValues = "='Sheet3'!$12:$12"
您正在指定要打印的第12行。而不是$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获得$C$12,从endColX获得$L$12。其余的代码是直接的,您可以使用以下代码:

ActiveChart.SeriesCollection(1).XValues = "='Sheet3'!" + startColX + ":" + endColX
我希望这能有所帮助

干杯