打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用VBA查找最接近的值
userphoto

2022.08.19 四川

关注
excelperfect

标签:VBA

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

下面的VBA代码将遍历一系列单元格,并评估最接近的匹配值。
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中,你可以根据需要进行更改。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Excel技巧应用篇:汇总忽略Excel中错误的单元格范围
VBA实用小程序10:获取文本字符串中的文本或者数字
EXCEL VBA与数据统计
14、[VBA入门到放弃笔记] SpecialCells方法
VBA练习——合并单元格
VBA 选中所有单元格 不包括首行
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服