我正在编写代码以遍历9000个客户帐户的列表,并使用application.vlookup
将其与另一个列表进行比较。如果客户帐户位于第二个列表中,则结果为True,然后为false。
该代码在99%的时间内都有效,但是在特定的客户帐户上仍然会失败。其他1%的时间,它给我类型不匹配错误。
我的理解是,如果我没有在vlookup
中分配customer_account(长变量类型),则在第二个表中找不到该值应该没有问题。这似乎是正确的,因为找不到其他所有客户帐户,因为不会发生错误。
此外,我在代码的前面使用了基本相同的代码来将客户帐户与另一个列表进行比较,并且该列表可以正常工作(所有相同的变量声明等)
这是我确认的内容:
1)所有客户帐户的格式均为常规格式(没有字母或特殊字符)
2)变量customer_account声明为long
3)变量national_accounts声明为范围,并且在for-next循环之前定义,因此不应更改。
4)第二个帐号列表按数字排序(出于效率考虑,将true用作vlookup
参数)。
If Application.VLookup(customer_account, national_accounts, 1, True) = customer_account Then <~~~~this is where the debugger shows an error type mistmatch
national_account_check = True
recommend_action = "National Account"
' Do some stuff
Else
national_account_check = False
' Do a some other stuff
End If
我的if语句不应该将customer_account分配给一个值,只需对表达式求值即可。