如何在Excel VBA中从公式中获取常数?
我添加了一条趋势线,得到它的线性方程值为y=ax+b形式。在excel VBA中,如何从公式中获取常数a?在公式中 以下方程式假定工作表有两个命名范围:x和y。然后: 资料来源: 如果没有命名范围,则使用例如: a=斜率B2:B22,A2:A22 b=B2:B22,A2:A22 在VBA中 rangeX=RangeCells2,1,Cells22,1'或:rangeX=RangeA2:A22 rangeY=RangeCells2,2,Cells22,2'或:rangeY=RangeB2:B22 a=Application.WorksheetFunction.SloperangeY,rangeX b=Application.WorksheetFunction.InterceptrangeY,rangeX 在公式中 以下方程式假定工作表有两个命名范围:x和y。然后: 资料来源: 如果没有命名范围,则使用例如: a=斜率B2:B22,A2:A22 b=B2:B22,A2:A22 在VBA中 rangeX=RangeCells2,1,Cells22,1'或:rangeX=RangeA2:A22 rangeY=RangeCells2,2,Cells22,2'或:rangeY=RangeB2:B22 a=Application.WorksheetFunction.SloperangeY,rangeX b=Application.WorksheetFunction.InterceptrangeY,rangeX如何在Excel VBA中从公式中获取常数?,excel,vba,excel-formula,Excel,Vba,Excel Formula,我添加了一条趋势线,得到它的线性方程值为y=ax+b形式。在excel VBA中,如何从公式中获取常数a?在公式中 以下方程式假定工作表有两个命名范围:x和y。然后: 资料来源: 如果没有命名范围,则使用例如: a=斜率B2:B22,A2:A22 b=B2:B22,A2:A22 在VBA中 rangeX=RangeCells2,1,Cells22,1'或:rangeX=RangeA2:A22 rangeY=RangeCells2,2,Cells22,2'或:rangeY=RangeB2:B22
您可以通过打开标签来读取实际公式 然后读取标签本身并解析它
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
您可以通过打开标签来读取实际公式 然后读取标签本身并解析它
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我选了你的答案,因为它看起来还行,但我很难在单元格上写下它,常数“a”也无法在即时windows调试中打印。print@Hakan–您似乎将两个答案中的代码混合在一起。你认为你只能使用这个答案中的代码吗?当代码混合时,更难理解错误。@Hakan–如果它对您有效,请单击左侧的复选标记接受最有用的答案。高质量的答案也可以被提升。嗨@miroxlav我选了你的答案,因为它看起来还行,但我很难在单元格上写下它,常数“a”也无法在即时windows调试中打印。print@Hakan–您似乎将两个答案中的代码混合在一起。你认为你只能使用这个答案中的代码吗?当代码混合时,更难理解错误。