作业帮 > 综合 > 作业

如何用vba在excel中自定义一个函数

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/04/19 17:35:42
如何用vba在excel中自定义一个函数
要求根据温度,如150,自动判断区间,插值计算出相应的焓值,差不多向forecast()这样的函数,但是要求是在两个温度间按直线插值,而不是整个组线性拟合
如何用vba在excel中自定义一个函数
我是来学习的,因为我不太清楚什么是插值 什么是直线 什么是线性 ,
我猜测直线插值,就是按比例插值(如果这里猜测错了,楼主就不用往下看了,但请指教)
150焓值=(266.36-132.43)/(200-100)*(150-100)+132.43=199.395
自定义公式为:
Function ForecastII(x, known_y, known_x) As Integer
Dim xRange
Dim xMin
Dim xMax
Dim yRange
Dim yMin
Dim yMax
Dim i
xRange = known_x
yRange = known_y
For i = 1 To UBound(xRange)
If xMin "" Then
xMax = xRange(i, 1)
yMax = yRange(i, 1)
Exit For
Else
End If
If x > xRange(i, 1) Then
xMin = xRange(i, 1)
yMin = yRange(i, 1)
Else
End If
Next
ForecastII = (yMax - yMin) / (xMax - xMin) * (x - xMin) + yMin
End Function
'(forecasetII 和forecaset的用法一样
'=ForecasetII(150,"焓值表","温度区间表")
再问: 谢谢你的回答,可能我没说清楚,你的理解对的,是线性插值。不过还有点小问题,拿150来说,你的程序好像只是在0-200之间插值,不是100-200,还有恰好等于区间端点值时,我在你的基础上做了修改,(ps:评论写不下,就在追问里写了)