范围和Excel VBA

时间:2018-02-28 18:43:59

标签: excel-vba vba excel

我正在尝试创建一个输入两个范围和一个数字的函数。例如,第一范围包括数字[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

0 个答案:

没有答案