匹配范围中的值

时间:2014-04-07 17:20:54

标签: vba excel-vba excel

今天我用这个代码玩了一个多小时,终于让它上班了。有人可以解释为什么我必须在此代码生效之前声明我的shopOrder变量吗?如果我省略“Dim shopOrder as Long”行,shopOrder是什么类型的变量?

Dim shopOrder As Long
Dim lastUsedRow As Long

lastUsedRow = wsjobs.Cells(Rows.Count, "A").End(xlUp).Row
shopOrder = 15150664

If Not IsError(Application.Match(shopOrder, Range("E1:E" & lastUsedRow), 0)) Then
    MsgBox ("This shop order already exists!")
    Exit Sub
End If

非常感谢您的帮助!

谢谢。

1 个答案:

答案 0 :(得分:4)

如果您查看VBA数据类型,您会看到 long 长度为4个字节,涵盖范围从-2,147,483,648到2,147,483,647。

可能你的变量的类型为 int ,长度为2个字节,仅涵盖-32,768到32,767。

您分配给它的价值大于32,767。