3

就像我说的,我有一组数据,只有一个简单的 x 列,然后是一个作为函数的 f(x) 列。当我记录我的宏时,我只需为每列选择 x、f(x) 和下面的 20 个值,选择散点图并输出我想要的图形,其中 f 作为 x 的函数。

当我运行宏时,它总是输出一个散点图,但不是将 f(x) 绘制为 x 的函数,它只是将两组数字绘制为独立的系列。我不知道如何改变它。

这是我的代码:

Sub insertGraph()
'
' insertGraph Macro
'

'
Range("A4:B25").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("'Sheet5'!$A$4:$B$25")
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
End Sub
4

1 回答 1

1

在设置ChartType之前设置SetSourceData

发生的事情是AddChartand orSetSourceData创建了一个没有 X 轴数据的默认类型 (Column) 的图表,因此将列 A 和 B 绘制为两个系列。改成 Scatter 保留这两个系列。

您还应该避免使用Select(记录器有助于找出要使用的对象,但会创建糟糕的代码!)。就是这样:

Sub insertGraph()
    '
    ' insertGraph Macro
    '
    Dim cht As Chart
    Set cht = ActiveSheet.Shapes.AddChart(XlChartType:=xlXYScatterSmoothNoMarkers).Chart
    With cht
        .SetSourceData Source:=Range("A4:B25")
        ' add additional code to set other properties of the chart...

    End With
End Sub
于 2013-08-25T04:32:17.900 回答