Excel VBA中如何从公式中获得常量?

我添加了一个趋势线,并得到其线性方程的值为y = ax + bforms。 在Excel VBA中,我怎样才能从这个公式得到a恒定a

您可以通过打开标签来阅读实际的公式

然后阅读标签本身并parsing它

 Sub readFormula() Dim ttt As Trendline Set ttt = ActiveChart.FullSeriesCollection(1).Trendlines(1) ttt.DisplayEquation = True Debug.Print ttt.DataLabel.Caption Debug.Print ttt.DataLabel.Formula Debug.Print ttt.DataLabel.FormulaLocal Debug.Print ttt.DataLabel.FormulaR1C1 Debug.Print ttt.DataLabel.FormulaR1C1Local Debug.Print ttt.DataLabel.Text ttt.DisplayEquation = False end sub 

在公式中

以下等式假定您的工作表有两个命名范围: xy 。 然后:

 a = SLOPE(y,x) b = INTERCEPT(y,x) 

资料来源: 图表趋势线公式

没有命名的范围,你使用例如:

 a = SLOPE(B2:B22, A2:A22) b = INTERCEPT(B2:B22, A2:A22) 

在VBA中

 rangeX = Range(Cells(2, 1), Cells(22, 1))) ' OR: rangeX = Range("A2:A22") rangeY = Range(Cells(2, 2), Cells(22, 2))) ' OR: rangeY = Range("B2:B22") a = Application.WorksheetFunction.Slope(rangeY, rangeX) b = Application.WorksheetFunction.Intercept(rangeY, rangeX)