我有A栏:
+--+--------+
| | A |
+--+--------+
| 1|123456 |
|--+--------+
| 2|Order_No|
|--+--------+
| 3| 7 |
+--+--------+
现在,如果我输入:
=Match(7,A1:A5,0)
进入工作表中的单元格
3
结果是。 (这是需要的)
但是当我输入这一行时:
Dim CurrentShipment As Integer
CurrentShipment = 7
CurrentRow = Application.Match(CurrentShipment, Range("A1:A5"), 0)
CurrentRow的值为“错误2042”
我的第一个直觉是确保值7实际上在范围内,并且确实在范围内。
我的下一个可能是Match函数需要一个字符串,所以我尝试了
Dim CurrentShipment As Integer
CurrentShipment = 7
CurrentRow = Application.Match(Cstr(CurrentShipment), Range("A1:A5"), 0)
无济于事。
最佳答案
请参见VBA Cell Error Values的列表:
Constant Error number Cell error value
xlErrDiv0 2007 #DIV/0!
xlErrNA 2042 #N/A
xlErrName 2029 #NAME?
xlErrNull 2000 #NULL!
xlErrNum 2036 #NUM!
xlErrRef 2023 #REF!
xlErrValue 2015 #VALUE!
尝试将
CurrentShipment
的值从Integer
转换为Long
而不是String
:CurrentRow = Application.Match(CLng(CurrentShipment), Range("A1:A5"), 0)