重点内容
适用版本
桌面版通用(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: