特定单元格未找到时VBA脚本出现自动化错误的解决方法
解决VBA查找失败时的报错问题并满足偏移量复制需求
直接修改代码,通过捕获查找结果并判断是否存在,避免报错同时满足你的需求:
'Look for Research data and findings Dim rngFound As Range '将查找结果赋值给变量,避免直接激活空对象报错 Set rngFound = wsData.Cells.Find(What:="Research data and findings*", _ After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, _ SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) '如果找到目标单元格,就激活它;没找到则保持当前活动单元格不变 If Not rngFound Is Nothing Then rngFound.Activate End If '执行数据复制,无论是否找到,都使用当前活动单元格的偏移量 wsSummary.Range("E" & nr).Value = ActiveCell.Offset(1).Value wsSummary.Range("F" & nr).Value = ActiveCell.Offset(2).Value
关键修改点:
- 新增
rngFound变量存储查找结果,避免直接调用.Activate触发空对象错误 - 通过
If Not rngFound Is Nothing判断是否找到目标,仅在找到时更新活动单元格 - 数据复制逻辑放在判断之后,确保未找到时使用原活动单元格的偏移量
内容的提问来源于stack exchange,提问作者Scott Thorley
相关产品推荐
相关产品推荐

