[英]What's wrong with my VBA code (I'm getting runtime error 9)
我环顾四周,发现“运行时错误 9 下标超出范围”错误通常与数组有关。 但是,我不确定如何解释我找到的最适合我的代码的答案。
我编写了一个简单的函数,用于从字段中提取名字和姓氏,然后我发现该字段中有一些 Null,并试图通过从 String 更改为 Variant 声明来进行补偿。
我已经用类似的代码让它工作而没有错误......但不是这个代码。
我的代码如下:
Function FLastName(ByVal lnIn As Variant) As Variant
Dim astrFullName() As String
If IsNull(lnIn) Then
FLastName = Null
Else
ReDim astrFullName(2) 'This is a new concept to me... not sure if I really need this
astrFullName = Split(lnIn, ",")
FLastName = astrFullName(0)
End If
End Function
预先感谢您的见解和帮助。
编辑:我发现问题在于数组不喜欢某些名称字段中的 Null 值......我认为以下行可以解决这个问题:
If IsNull(lnIn) Then
FLastName = Null
但显然我错了。
任何人都对我迄今为止发现的内容有一些建议?
你真的不需要ReDim
......你甚至不必把它作为一个数组来调Dim
。
Function FLastName(ByVal lnIn As Variant) As Variant
Dim astrFullName
If IsNull(lnIn) Then
FLastName = Null
Else
astrFullName = Split(lnIn, ",")
FLastName = astrFullName(0)
End If
End Function
PS:假设 lnIn 将包含一个逗号分隔的字符串......否则你可能需要检查。
我找到了答案!
Allen Browne(他非常棒)在他的网站上有一个“ParseWord”功能,可以处理我需要完成的工作。
可以在这里找到: http : //allenbrowne.com/func-10.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.