1
我添加了一個趨勢線,並得到其線性方程的值爲y = ax + b
形式。在Excel VBA中,我怎麼能從這個公式得到恆定的a
?如何從Excel VBA中獲得常量?
我添加了一個趨勢線,並得到其線性方程的值爲y = ax + b
形式。在Excel VBA中,我怎麼能從這個公式得到恆定的a
?如何從Excel VBA中獲得常量?
在公式
下面的公式假設你的表有兩個命名範圍:x
和y
。然後:
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)
可以讀取實際FO rmula通過轉動標籤
上再讀取標籤本身並解析它
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
@Hakan - 如果你的作品,通過點擊左側複選標記接受最有用的答案。質量答案也可以提高。 – miroxlav
嗨@miroxlav嗨@miroxlav我投了你的,因爲它似乎好,但我有困難,它寫在單元格上,恆定的'a'也不能打印在即時窗口debug.print – Hakan
@Hakan - 看起來你是從兩個答案混合在一起的代碼。你認爲你只能使用這個答案的代碼嗎?當代碼混合時,更難理解錯誤。 – miroxlav