Excel生成邮箱:反转姓名格式+修复VBA空单元格报错及提取纯名
修正后的VBA函数
Function GetFirstName(ByVal Str As String) As String Dim arrNameParts As Variant Dim firstNamePart As String ' 处理空单元格或全空白内容 If Trim(Str) = "" Then GetFirstName = "" Exit Function End If ' 按逗号分割姓和名部分 arrNameParts = Split(Str, ",") ' 提取逗号后的内容并清理前后空白 firstNamePart = Trim(arrNameParts(UBound(arrNameParts))) ' 按空格分割,仅保留第一个单词(剔除中间名) arrNameParts = Split(firstNamePart, " ") GetFirstName = arrNameParts(0) End Function
核心优化点
- 空值容错:通过
Trim(Str) = ""判断空单元格或全空格内容,直接返回空字符串,避免后续操作报错。 - 清理冗余空格:用
Trim()处理逗号后的内容,解决逗号后带空格导致的分割异常。 - 提取首个单词:将逗号后的内容再次按空格分割,取数组第一个元素,确保只保留名的核心部分,自动忽略中间名。
测试示例
- 输入
"Donovan, Erik James"→ 返回"Erik" - 输入空单元格 → 返回空字符串
- 输入
"Smith, Jane"(逗号后多空格)→ 返回"Jane" - 输入
"Lee, Wei"→ 返回"Wei"
内容的提问来源于stack exchange,提问作者Erik Donovan
相关产品推荐
相关产品推荐

