2017-09-24 25 views

回答

2

在公式

下面的公式假設你的表有兩個命名範圍:xy。然後:

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

來源:Chart Trendline Formulas

沒有命名的區域,可以使用例如:

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) 
+0

@Hakan - 如果你的作品,通過點擊左側複選標記接受最有用的答案。質量答案也可以提高。 – miroxlav

+0

嗨@miroxlav嗨@miroxlav我投了你的,因爲它似乎好,但我有困難,它寫在單元格上,恆定的'a'也不能打印在即時窗口debug.print – Hakan

+0

@Hakan - 看起來你是從兩個答案混合在一起的代碼。你認爲你只能使用這個答案的代碼嗎?當代碼混合時,更難理解錯誤。 – miroxlav

2

可以讀取實際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