例如A1单元格为1,A30单元格为30,想要在A2~A29之间,插入线性值。可以使用以下自定义函数。
'功能描述:在两个数之间填充线性值
'x、y:单元格。必须位于同行或同列
'pos:row()/column()
'返回值:单精度浮点数
Public Function 线性值计算(x As Object, y As Object, pos As Integer) As Single
Dim length As Integer
Application.Volatile True
If (x.Column = y.Column) Then
length = pos - x.Row
线性值计算 = (y - x) / (y.Row - x.Row) * length + x
Else
length = pos - x.Column
线性值计算 = (y - x) / (y.Column - x.Column) * length + x
End If
End Function
使用方法:开发工具,VB编辑器,插入,模块。将代码复制粘贴后关闭编辑器界面。
然后在A2单元格输入公式:=线性值计算($A$1,$A$30,ROW())。然后下拉,将公式应用到A3~A29单元格。
因为A1和A30处于同列,变化量为行,所以公式中使用的是row()参数。若为同行,即变化量为列,那么输入的参数为column()。