使用VBA查找最接近的值

2022-11-16 12:53:33 浏览数 (1)

标签:VBA

有时候,不一定会查找到精确的值,如果是这样的话,应该可以找到最接近的值。有很多公式可以实现,然而本文不使用公式,而是使用VBA代码来实现。

下面的VBA代码将遍历一系列单元格,并评估最接近的匹配值。

代码语言:javascript复制
Sub NearestValue()
    Dim rng As Range
    Dim r As Range
    Dim Mx As Single
    Dim i As Long
    Dim target As Integer
    '要查找的值所在的单元格
    target = Range("D10").Value
    '要查找的区域
    Set rng = Range([B10], Range("B" & Rows.Count).End(xlUp))
    '结果区域
    rng.Offset(, 1).ClearContents
    Mx = Application.Max(rng)
    '遍历单元格并查找
    For Each r In rng
        If Abs(target - r) < Mx Then
            Mx = Abs(target - r)
            i = r.Row
        End If
    Next r
    Cells(i, 3) = "匹配"
End Sub

找到最接近值的关键是找到目标(目标匹配的数字)和被评估单元格中的数字之间的最小数字。如果两个值之间的差为零,则有匹配项,否则,范围内最接近零的数字是最接近的匹配项,因为该数字是最接近的。

本示例中,评估的数字在列B中,你可以根据需要进行更改。

vba

0 人点赞