首页 > 解决方案 > 为什么我在 Excel VBA 中收到运行时错误“91”

问题描述

我正在尝试使用宏来为条形码创建输入/输出寄存器,并且我正在使用我在网上找到的代码。问题是,当我插入条形码时,会弹出错误“91”并突出显示 ActiveSheet.Range("a4:a150").Find("").Select 我对编码世界完全陌生并且不知道怎么了。将不胜感激!

Sub access()
Dim barcode As String
Dim rng As Range
Dim foundVal As Range
Dim diff As Double
Dim rownumber As Long

barcode = ActiveSheet.Cells(2, 1)
If barcode <> "" Then
    Set rng = ActiveSheet.Range("a4:a150").Find(What:=barcode, _
    LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
    SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
    If rng Is Nothing Then
ActiveSheet.Range("a4:a150").Find("").Select
ActiveCell.Value = barcode
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Date & "  " & Time
ActiveCell.NumberFormat = "d/m/yyyy h:mm:ss AM/PM"
ActiveSheet.Cells(2, 1) = ""
    Else
        rownumber = rng.Row
        ActiveSheet.Range(Cells(rownumber, 1), Cells(rownumber, 10)).Find("").Select
        ActiveCell.Value = Date & "  " & Time
        ActiveCell.NumberFormat = "d/m/yyyy h:mm:ss AM/PM"
        ActiveSheet.Cells(2, 1) = ""
    End If
End If
ActiveSheet.Cells(2, 1).Select

End Sub

标签: excelvba

解决方案


如果范围内没有空单元格,该行将引发错误。


推荐阅读