gpt4 book ai didi

excel - #在 Excel 中使用自定义函数时出现值错误

转载 作者:行者123 更新时间:2023-12-03 02:31:03 27 4
gpt4 key购买 nike

当我尝试调用自定义函数时,收到 #VALUE 错误。它所要做的只是一些数学运算。有人看出这里出了什么问题吗?

我从互联网上复制了这个:

来源:

http://www.engineerexcel.com/linear-interpolation-vba-function-in-excel/

Function LININTERP(x, xvalues, yvalues)

'x and y values must be in ascending order from top to bottom.
'x must be within the range of available data.

x1 = Application.WorksheetFunction.Index(xvalues, Application.WorksheetFunction.Match(x, xvalues, 1))
x2 = Application.WorksheetFunction.Index(xvalues, Application.WorksheetFunction.Match(x, xvalues, 1) + 1)

y1 = Application.WorksheetFunction.Index(yvalues, Application.WorksheetFunction.Match(x, xvalues, 1))
y2 = Application.WorksheetFunction.Index(yvalues, Application.WorksheetFunction.Match(x, xvalues, 1) + 1)

LININTERP = y1 + (y2–y1) * (x–x1) / (x2–x1)
End Function

这是我制作的简化版本,认为工作表函数调用可能会导致错误:

Function LININTERP(x, x1, x2, y1, y2)
LININTERP = y1 + (y2–y1) * (x–x1) / (x2–x1)
End Function

我在不相关的工作簿中的测试数据:(全部格式为“常规”)

A1: 633
A2: 634
B1: 14.968
B2: 15.024
C1 (my x): 633.6

只需将实际的数学运算插入单元格即可按预期工作。调用该函数会引发 #VALUE 错误。

我的函数保存在我已保存并作为加载项添加到 Excel 的工作簿的模块中。

最佳答案

我对您的公式和数据进行的采样在连字符未被解释为“减号”时出现了错误。事实上,它们显示为 unicode 8211。重新输入它们,将变量声明为变体并删除 ...WorksheetFunction... 解决了问题。

Function LININTERP(x, xvalues, yvalues)
Dim x1 As Variant, x2 As Variant, y1 As Variant, y2 As Variant

'x and y values must be in ascending order from top to bottom.
'x must be within the range of available data.

x1 = Application.Index(xvalues, Application.Match(x, xvalues, 1))
x2 = Application.Index(xvalues, Application.Match(x, xvalues, 1) + 1)

y1 = Application.Index(yvalues, Application.Match(x, xvalues, 1))
y2 = Application.Index(yvalues, Application.Match(x, xvalues, 1) + 1)

LININTERP = y1 + (y2 - y1) * (x - x1) / (x2 - x1)
End Function

enter image description here

这个故事的寓意:不要相信你在互联网上找到的一切。

关于excel - #在 Excel 中使用自定义函数时出现值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43238172/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com