坡度和拦截函数返回#Value! (错误2015)

时间:2019-11-29 13:48:25

标签: excel vba

我正在使用Excel VBA程序,该程序显示一系列x,y值的散点图以及带有线性最小二乘方程和R平方的趋势线。我想在我的VBA程序中捕获“斜率和截距”。在本机XL中,我将在类似于此类的单元格中输入以下内容:

=SLOPE(B2:B1026,A2:A1026)

但是,如下所示,当我尝试在VBA中执行此操作时,我得到了#Value! 2015错误。我究竟做错了什么?

我可以进行一些字符串操作以从趋势线图例中提取它们,但我更愿意直接进行操作。

我也尝试过使用“ Application.WorksheetFunction.Intercept ...”,但是会引发错误“无法获取worksheetFunction类的Intercept属性”。

jpg图像example data, graph and slope calculations

中显示了一些示例数据,图形和斜率计算

这是相关的VBA代码,请注意,最大值为1026,但我也直接将1026编码为无效。

ActiveChart.FullSeriesCollection(1).Select
ActiveChart.FullSeriesCollection(1).Trendlines.Add
ActiveChart.FullSeriesCollection(1).Trendlines(1).Select
Selection.DisplayEquation = True
Selection.DisplayRSquared = True
Cells(2, 10) = Application.Intercept("$b2:$b" & Max, "$a2:$a" & Max)
Cells(3, 10) = Application.Slope("$b2:$b" & Max, "$a2:$a" & Max)
Cells(4, 10) = Application.RSq("$b2:$b" & Max, "$a2:$a" & Max)

1 个答案:

答案 0 :(得分:1)

此语法错误

Application.Slope("$b2:$b" & Max, "$a2:$a" & Max)

根据WorksheetFunction.Slope method,您提交给Slope的参数必须是Range对象。

Application.Slope(Range("$b2:$b" & Max), Range("$a2:$a" & Max))