空值与比较
假定有下面这么一个表,
如果希望筛选出不等于a的行,通常我们会用如下的代码:
Tables(
"表A").Filter = "第一列 <> 'a'"因为b和空值都不等于a,所以按道理能得到期待的正确结果:
可实际上我们得到的结果会是:
这是因为空值是不参与比较的,不管条件是等于某个值还是不等于某个值,对于空值来说,条件都是不成立的 ,空值只能用Is Null 或者 Is Not Null进行判断。
所以对于上图中的表,要筛选出第一列不等于a的行,正确的代码应该是:
Tables(
"表A").Filter = "第一列 <> 'a' Or 第一列 Is Null"意思说是筛选出等一列不等于a或者第一列为空的行。