You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:WorksheetFunction类Vlookup属性运行时错误1004解决指导

VBA VLookup 运行时错误1004 解决指南

错误原因分析

出现"Unable to get the Vlookup Property of the worksheetFunction class run time error 1004"错误,核心原因分为两类:

  1. WorksheetFunction.VLookup特性限制:当查找值在目标区域首列无匹配结果时,会直接抛出运行时错误,而非返回错误值。
  2. 基础引用问题:
    • Me.cmb_Product.Value为空,或与查找区域首列(C列)的数据格式不匹配(如文本与数值类型冲突)。
    • sh.Range("C:J")的首列未包含匹配值。
    • sh对象未正确指向目标工作表,导致区域引用无效。

修复方案

方案1:改用Application.VLookup(推荐)

Application.VLookup在无匹配时返回#N/A而非报错,可通过判断结果处理:

Dim lookupResult As Variant
lookupResult = Application.VLookup(Me.cmb_Product.Value, sh.Range("C:J"), 2, False)

If Not IsError(lookupResult) Then
    Me.Txt_Rate.Value = lookupResult
Else
    Me.Txt_Rate.Value = "" ' 可替换为"无匹配数据"等提示文本
End If

方案2:保留WorksheetFunction.VLookup并添加错误捕获

通过错误捕获语句处理无匹配的情况:

On Error Resume Next
Me.Txt_Rate.Value = Application.WorksheetFunction.VLookup(Me.cmb_Product.Value, sh.Range("C:J"), 2, False)

If Err.Number = 1004 Then
    Me.Txt_Rate.Value = "" ' 自定义错误处理逻辑
End If
On Error GoTo 0 ' 恢复默认错误处理机制

额外检查要点

  • 确认sh已正确赋值,例如:Set sh = ThisWorkbook.Worksheets("目标工作表名称")
  • 核对查找值Me.cmb_Product.Value与C列数据的格式一致性(如统一为文本或数值)
  • 确保cmb_Product控件返回的是有效非空值

内容的提问来源于stack exchange,提问作者S M Sheheryar Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 20:21:03