之前写了一个用于公司录BOM的VBA小程序,但在实际的推广使用中如果没有按严格的输入会出现异常。
如下所示程序报了运行时错误'13':类型不匹配
打开VBA程序再次运行,使用调试功能定位到出错的语句。
可以看到程序是写If rg.Value = "" Then,如果rg的Value值为空的时候,需要标为红色。那实际此时value的值是Error 2024。
经过分析Error 2042就是#N/A。查找到出错的位置发现从Cadence导出BOM中存在#N/A这样的料号。正常情况下料号要么是空,要么是数字。这里不知道是谁把料号改成了#N/A。