如何解决查找功能上的VBA脚本'对象变量或未设置块变量'
我正在经历大约500次相同类型过程的迭代,并且在第227次迭代中遇到此错误。我不确定为什么它适用于所有项目,或者为什么它在这里停止工作。通用代码如下:
sub macro()
Set ws = ThisWorkbook.Sheets("Sheet1")
for i = 1 to 500
datarange1 = "f3:f50"
Set range1 = ws.Range(datarange1)
lupValue= Application.WorksheetFunction.Min(range1)
With range1
Set cellc = .Find(lupValue,LookIn:=xlValues)
date_min = cellc.Offset(0,-4).Value
End With
next
end sub
代码在“ date_min = cellc.Offset(0,-4).Value”处停止,并出现“对象变量错误”
知道为什么会停止吗?
解决方法
如果Find
未找到匹配项,它将返回Nothing
到cellc
,这将导致运行时错误。您必须使用类似的方法对此进行检查
if Not cellc is Nothing then
date_min = cellc.Offset(0,-4).Value
Else
' ... think of a way to handle that case,maybe show an error.
End If
如果您在f3:f50
范围内的数据不包含任何数值(或根本没有数据),则Min
函数将返回0
,这可能导致Find
失败。
为什么,顺便说一句,您是否为此循环了500次?它将执行500次相同的操作(您未在任何地方使用计数器i
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。