我正在尝试创建一个输入两个范围和一个数字的函数。例如,第一范围包括数字[1,2,3,4,5],第二范围包括[A,B,C,D,E]。如果输入数字是4.2 - 我希望函数首先找出哪个数字在范围1中最接近。在这种情况下它是4,其位置为4.然后我想查找第四个元素第二个范围和输出。在这种情况下,它应输出“D”。
我不确定是否应该将范围转换为数组,因为它们是一维的。而且我不确定如何做到这一点,并使其工作。请看下面的代码。
Function getclosest(ByVal rng As Range, ByVal rng2 As Range, tgt As Double) As Double
Dim position, closest As Double
t = WorksheetFunction.Max(rng)
For Each r In rng
u = Abs(r - tgt)
If u < t Then
t = u
position = r
End If
Next
closest = Application.Match(position, rng, False)
getclosest = rng2(closest)
End Function