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

VBA搜索日期后选择偏移单元格报对象变量未设置错误如何解决?

界面截图

报错根因

代码里的4个问题直接触发了该报错:

  • Range对象赋值必须使用Set关键字,你给fromlist赋值时缺少Set
  • 日期类型变量错误声明为String,导致和B列的日期格式无法匹配,Find返回空对象
  • LookIn参数拼写错误,正确取值为xlValues,你写的xlValue是无效参数
  • 没有对Find的返回结果做非空校验,一旦未找到匹配值,直接调用Select方法就会抛出对象未设置的错误
修复后可直接运行的代码
Private Sub btngo_Click()
    Dim thedate As Date
    Dim fromlist As Range
    Dim resRng As Range
    
    thedate = Range("E2").Value
    Set fromlist = Range("B6:B370")
    
    Set resRng = fromlist.Find(what:=thedate, after:=Range("B5"), LookIn:=xlValues, _
       lookat:=xlWhole, searchorder:=xlByRows, SearchDirection:=xlNext, _
       MatchCase:=False)
    
    If Not resRng Is Nothing Then
        resRng.Offset(0, 1).Select
    Else
        MsgBox "未找到匹配的日期值", vbInformation
    End If
End Sub
功能说明
  • 自动读取E2单元格的日期作为搜索目标,格式和B列存储的日期完全匹配
  • 搜索范围固定为B6到B370区域
  • 找到匹配日期后自动选中该行右侧相邻的单元格
  • 未搜索到匹配内容时弹出提示,不会出现运行时报错

内容的提问来源于stack exchange,提问作者ahmad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:36:03