VBA条件满足时语句正常,不满足时出现类型不匹配错误求助
解决VBA中判断#N/A时的类型不匹配问题
嘿,我完全懂你遇到的这个坑!你现在的代码之所以会在B1是#N/A时报错,核心原因是:单元格里的#N/A是Excel的错误值类型,不是字符串"#N/A"。直接用[B1].Value和字符串"#N/A"比较,相当于拿错误值和字符串做类型对比,自然会触发类型不匹配的错误。
给你两种简单的解决思路,都是初学者容易上手的:
方法一:用IsError函数判断所有错误值
这个方法会先检查单元格是否包含任何错误值(包括#N/A、#DIV/0!、#VALUE!等),如果不是错误值就执行删除操作:
If Not IsError([B1].Value) Then [B1].EntireRow.Delete End If
方法二:用WorksheetFunction.IsNA精准判断#N/A
如果你只想针对#N/A这个特定错误做判断,不想排除其他错误值,可以用这个函数,它只会识别#N/A错误:
If Not WorksheetFunction.IsNA([B1].Value) Then [B1].EntireRow.Delete End If
小提醒:以后处理Excel单元格内容时,如果遇到可能出现错误值的情况,记得先做错误值判断再进行后续操作,就能避免这类类型不匹配的问题啦~
内容的提问来源于stack exchange,提问作者The Dude MAN
相关产品推荐
相关产品推荐

