我的一个单元格似乎是空白的,但长度为 2 个字符。我将字符串复制到 this网站,并将其识别为空字符串。
我已经尝试使用 IsNull
和 IsEmpty
,并测试它是否等同于 vbNullString
但它仍然会出现为 False
。
如何将此字符串识别为 Null
?
最佳答案
“看似空白但长度为 2 个字符”的字符串值被称为空白,而不是空白,也不是空,不是空。
使用 Trim
函数(或其 Trim$
字符串类型的小兄弟)去除前导/尾随空白字符,然后针对 vbNullString< 测试结果
(或“”
):
If Trim$(value) = vbNullString Then
不过,Trim
函数不会去除不间断空格。您可以编写一个函数来执行以下操作:
Public Function TrimStripNBSP(ByVal value As String) As String
TrimStripNBSP = Trim$(Replace(value, Chr$(160), Chr$(32)))
End Function
这会将不间断空格替换为 ASCII 32(“正常”空格字符),然后对其进行修剪并返回结果。
现在您可以使用它来针对 vbNullString
(或 ""
)进行测试:
If TrimStripNBSP(value) = vbNullString Then
IsEmpty
函数只能与 Variant
一起使用(无论如何只返回给定 Variant
的有意义的结果),以确定是否变体包含一个值。
IsNull
函数在 Excel 托管的 VBA 中的使用极其有限,并且不需要,因为在 Excel 工作表中没有任何东西会是 Null
- 特别是不是长度为 2 的字符串。
关于excel - VBA - 识别空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54204067/