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

Excel VBA查找列中下一非空单元格报运行时错误91如何解决?

错误原因分析

  • 第一个语法错误:VBA 中给方法的命名参数赋值时必须使用:=运算符,你代码里的What = "*"写法错误,应该改为What:="*"。语法错误导致Find方法调用失败返回Nothing,后续调用.Row属性就会触发运行时错误91(对象变量未设置)。
  • 第二个逻辑漏洞:如果A列A2之后不存在任何非空单元格,Find方法会直接返回Nothing,此时即使参数写法正确,直接访问.Row属性依然会抛出同样的错误,需要先判断返回结果是否为有效对象。

修复后的参考代码

Dim findRng As Range
' 修正参数赋值符号,补充搜索方向参数,避免默认方向带来的问题
Set findRng = rosterSh.Columns("A").Find(What:="*", After:=rosterSh.Range("A2"), LookIn:=xlValues, SearchDirection:=xlNext)
If Not findRng Is Nothing Then
    nextPlayerRow = findRng.Row
Else
    ' 自定义处理未找到的场景,比如赋值为0提示无后续球员
    nextPlayerRow = 0
    MsgBox "A2之后未找到有效球员姓名"
End If

提示:如果你的需求是跳过A2之后的空行直接找下一个非空单元格,上述代码的SearchDirection:=xlNext参数可以确保从A2之后向下搜索,符合使用场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:27:05