我有 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)
关于excel - 为什么我在 VBA Match 中收到错误 2042?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15526784/