我的数据库中有列'名称'员工姓氏" Surname,Name"喜欢' Gambel,Peter'。
我想在报告中替换此名称,例如'彼得。 G&#39 ;.我已经创建了一个Vba函数,它可以像上面所示转换Name,但是如果字段值为空,那么它总是返回给我' #Type!'。我已经尝试了很多,但仍然无法解决此错误。
Public Function name_change(Name_pass As String) As String
If (IsNull(Name_pass) Or Name_pass = "") Then
name_change = "-"
Else
Dim Name_split() As String
Name_split = split(Name_pass, ",")
Name_split(0) = Left$(Name_split(0), 1)
name_change = Name_split(1) & "." & Name_split(0)
End If
End Function
答案 0 :(得分:0)
如果不存在逗号,则Name_split
的 UBound 为0
,而Name_split(1)
将失败。
答案 1 :(得分:0)
正如古斯塔夫指出的那样,你只是在检查一个空字符串,而不是那个没有逗号的字符串。你需要这样的东西:
If Nz(Name_pass) LIKE "*,*" Then
Dim Name_split() As String
Name_split = split(Name_pass, ",")
Name_split(0) = Left$(Name_split(0), 1)
name_change = Name_split(1) & "." & Name_split(0)
Elseif Trim(Nz(Name_pass)) = "" then
name_change = "-"
Else
[Deal with names that have content but not comma]
End if
答案 2 :(得分:0)
最后我找到了答案。
在将值传递给函数之前的控制源中,我们必须使用NZ函数检查值是否为Null。
= name_change(NZ([名称]," - &#34))
感谢大家的意见。