VBA如何判断Split函数拆分字符串后得到的数组元素是否为Null
错误根因
你遇到的报错核心原因有两个:
rst!Notes字段本身可能为Null值,VBA的Split函数不支持Null作为输入参数,直接传入就会触发「Invalid use of Null」错误- 如果备注内容不存在
|分隔符,Split返回的数组最大下标为0,直接访问下标为1的元素会额外触发下标越界错误
可行代码实现
先对输入做Null转换,再判断数组长度后取值即可:
Dim arrNotes As Variant ' 先把Null值转换为空字符串,避免Split报错 arrNotes = Split(Nz(rst!Notes, ""), "|") ' 下标从0开始计数,数组上界≥1时才存在第二个元素 If UBound(arrNotes) >= 1 Then aNotesOver = arrNotes(1) Else aNotesOver = "" End If
这个写法同时兼容三种场景:Notes字段为Null、Notes字段无|分隔符、Notes字段有至少一个|分隔符,不会触发报错。
内容的提问来源于stack exchange,提问作者Christopher J. Joubert
相关产品推荐
相关产品推荐

