就像我说的,我有一组数据,只是一个简单的 x 列,然后是一个函数 f(x) 列。当我录制宏时,我只需为每列选择 x、f(x) 和下面的二十个值,选择散点图,它就会输出我想要的图形,其中 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
最佳答案
在设置 SetSourceData
之前设置 ChartType
发生的事情是 AddChart
和/或 SetSourceData
创建一个默认类型(Column)的图表,它没有 X 轴数据,因此将 A 列和 B 列绘制为两个系列。更改为分散会保留这两个系列。
您还应该避免使用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
关于Excel VBA : I record macro with scatter plot that executes x, f(x),但是当我运行宏时,总是将 X 和 F(x) 绘制为单独的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18423608/