vba-match和错误处理

本文是讲match函数的踩坑点,大家注意避坑。

1、MATCH函数只在一维数组或者二维一列数组中才有效。如图:

A2为二维数组,A3为一维数组, A4为二维一列数组。B运算结果为Error 2042,C运算结果为1,D运算结果为1。

需要注意的是A0是一维数组,A2是二维数组。

如果不借助单元格,要生成二维数组只有两种方法,一种是上图所示,通过两次transpose转化。

另一种是定义时就规定为二维数组,如图:

 

2、MATCH 函数找不到会报错影响程序运行,怎么处理?

方法一:在判断前加一句On Error Resume Next

如图,程序顺利运行

方法二:用ISERROR函数判断使程序顺利运行

3、日期元素即使在数组中存在,在MATCH函数中也会找不到

如图,运算结果显B为Error 2042。处理方法:将日期元素转化为字符串后,再用MATCH函数进行查找。

4、以数组查找数组中,一维函数与二维一列函数可以互换,不会影响结果。

如图,在Z1与Z3结果相同,Z2与Z4结果相同。

posted @ 2022-12-29 09:35  vba是最好的语言  阅读(1121)  评论(0编辑  收藏  举报