Microsoft Lab
全部软件
Excel应用程序对象(Application Object)约 4 分钟

Vlookup in VBA VBA 里用 VLOOKUP

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


基础用法

Range("H3").Value = WorksheetFunction.VLookup(Range("H2"), Range("B3:E9"), 4, False)

用 WorksheetFunction 属性存取 Excel 的 VLOOKUP 函数,把结果直接写进 H3。


加错误处理

On Error GoTo InvalidValue:

Range("H3").Value = WorksheetFunction.VLookup(Range("H2"), Range("B3:E9"), 4, False)

Exit Sub

InvalidValue: Range("H3").Value = "Not Found"

逻辑说明

  • 如果 H2 填的查找值在 B3:E9 找不到,WorksheetFunction.VLookup 会直接抛出运行时错误,让宏中断
  • On Error GoTo InvalidValue: 让程序遇到错误时,跳去执行 InvalidValue: 标签之后的代码,而不是直接中断
  • Exit Sub 放在正常流程的最后,确保没出错时不会「顺便」跑到下面的错误处理区块
  • 出错时执行 InvalidValue: 底下的代码,把 H3 显示成 "Not Found" 这种友善提示,而不是一堆错误代码

学完你会

常见错误

  • 没加错误处理,查找值不存在时整个宏直接中断报错,使用者体验很差
  • 忘记在正常流程结尾加 Exit Sub,导致没出错时也会「跑」到错误处理区块,显示错误信息
  • On Error GoTo 后面的标签名字打错,或者标签本身没有正确对应到程序里的位置

Sources

Blog / Website:

  1. Vlookup
只记在你的浏览器里,换设备不会同步。