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

VBA调用Find方法未查询到匹配行时运行报错问题求助

问题原因
  • 你在If判断中直接访问了.Find()返回结果的.Row属性:当Find方法没有匹配到内容时会返回Nothing,空对象不存在Row属性,直接访问就会触发运行时错误。
  • 原代码还存在冗余问题:重复调用了两次Find方法,无意义增加了执行开销。
修正后的代码
With ThisWorkbook.Sheets("TKSLIST").Range("A:A")
    FindRow = 1
    strTKSname = ws.Cells(i + 1, 11).Text
    ' 先把Find结果存到Range变量,避免重复搜索
    Dim rngFind As Range
    Set rngFind = .Find(What:=strTKSname, LookAt:=xlPart, LookIn:=xlValues, MatchCase:=False)
    ' 先判断对象是否为空,再访问行属性
    If Not rngFind Is Nothing Then
        FindRow = rngFind.Row
    End If
End With
补充说明
  • 代码初始已经把FindRow赋值为1,匹配不到内容的时候不需要重复赋值,直接保留初始值即可,逻辑更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:54:08