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

如何在VBA中使用Find函数查找预定义变量?报错求助

解决VBA Find函数查找拼接字符串时报错“运行时错误'91'”的问题

我来帮你搞定这个问题!你遇到的运行时错误'91',本质是Find方法没找到匹配的内容,返回了空对象(Nothing),这时候直接去访问.Row属性肯定会报错——毕竟你不能对一个不存在的对象操作嘛。

下面咱们一步步排查解决:

1. 给Find方法加上明确参数,避开默认值的坑

VBA的Find有很多隐藏的默认参数,这些参数会继承上一次查找的设置(不管是手动还是代码里的),很可能导致明明内容存在却找不到。所以咱们显式指定关键参数更稳妥:

Dim TickerFound As Range
Set TickerFound = HBWS.Cells.Find( _
    What:=TickerString, _
    LookIn:=xlValues, ' 查找单元格显示的实际值,而非公式
    LookAt:=xlWhole, ' 完全匹配整个单元格内容,避免部分匹配的情况
    MatchCase:=False ' 不区分大小写,可根据你的实际需求调整
)

2. 先判断是否找到结果,再获取行号

拿到TickerFound之后,先检查它是不是空对象,再去获取行号,这样就不会触发报错了:

If Not TickerFound Is Nothing Then
    TickerRow = TickerFound.Row
    ' 这里写找到目标行后的后续处理逻辑
Else
    MsgBox "未找到匹配的内容:" & TickerString, vbExclamation
    ' 未找到时可以给用户提示,或者添加其他兜底处理
End If

3. 额外排查几个容易踩的小坑

  • 检查字符串是否有隐藏字符:比如你看到的是“Total AAPL”,但实际单元格里可能有空格、全角空格或者其他不可见字符,导致拼接后的字符串不匹配。可以用Trim处理一下股票代码:
    TickerString = "Total " & Trim(TTB)
    
  • 缩小查找范围:如果整个工作表查找太宽泛,你可以限定到具体列,比如你之前找到的BorrowColumn所在列,或者你确定的目标列:
    Set TickerFound = HBWS.Columns(2).Find(...) ' 示例:限定在第二列查找
    
  • 确认工作表状态:确保Hoenheimm Worksheet是可见的,没有被保护,不然也可能影响查找结果。

最后把这些整合到你的代码里,修改后的完整版本大概是这样:

Dim HBWS As Worksheet
Dim TickerString As String
Dim TickerFound As Range
Dim BorrowColumn As Long, TickerRow As Long

TickerString = "Total " & Trim(TTB)
Set HBWS = Sheets("Hoenheimm Worksheet")

' 查找Borrow列也加上明确参数,更稳妥
BorrowColumn = HBWS.Cells.Find( _
    What:="Borrow", _
    LookIn:=xlValues, _
    LookAt:=xlWhole _
).Column

' 查找拼接后的目标字符串
Set TickerFound = HBWS.Cells.Find( _
    What:=TickerString, _
    LookIn:=xlValues, _
    LookAt:=xlWhole, _
    MatchCase:=False _
)

' 判断是否找到并处理
If Not TickerFound Is Nothing Then
    TickerRow = TickerFound.Row
    MsgBox "找到目标行啦:" & TickerRow, vbInformation
Else
    MsgBox "抱歉,没找到:" & TickerString, vbExclamation
End If

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:58:22