excel - 为什么我在 VBA Match 中收到错误 2042?

标签 excel excel-2007 vba

我有 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/

相关文章:

php - 使用 PHP 将 Excel/CSV 导入 MySQL 的未定义偏移量

r - 使用 R 从 Azure blob 导入 Excel

vba - Excel 2007 及更高版本之间的 Range.Interior.Color 不同

VBA 将数据透视表的源数据更新到行尾

excel - 构建 Do Until 循环以循环列直到空单元格

Excel VBA 不会粘贴前导零

VBA 群发邮件问题

excel-2007 - 如何解压 xlsx?

excel - 从一行中删除重复项

VBA 填充标题下的第一行