微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

查找功能上的VBA脚本'对象变量或未设置块变量'

如何解决查找功能上的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未找到匹配项,它将返回Nothingcellc,这将导致运行时错误。您必须使用类似的方法对此进行检查

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 举报,一经查实,本站将立刻删除。