Excel-删除中间名并替换为第一个字母

Excel-删除中间名并替换为第一个字母,excel,macros,Excel,Macros,我有许多excel工作簿,其中包含多张学生数据表 学生姓名的格式为:Abcd先生Efgh Ijkl 其中:Abcd:姓名; Efgh:中间名; Ijkl:姓 我希望能够运行宏。我是Excel的季节性用户。但是在某个论坛上读到的东西让我想到了宏 宏应能够将名称转换为:Mr.Abcd E.Ijkl 其中: 姓名 E:中间名,除去除第一个字母以外的所有字母;不过中间的名字长度各不相同。 Ijkl:姓 请阐明这一点。或者任何参考问题/答案也可以。这里我们假设中间名是全名最后一个组成部分的旁边 Publi

我有许多excel工作簿,其中包含多张学生数据表

学生姓名的格式为:Abcd先生Efgh Ijkl

其中:Abcd:姓名; Efgh:中间名; Ijkl:姓

我希望能够运行宏。我是Excel的季节性用户。但是在某个论坛上读到的东西让我想到了宏

宏应能够将名称转换为:Mr.Abcd E.Ijkl

其中: 姓名 E:中间名,除去除第一个字母以外的所有字母;不过中间的名字长度各不相同。 Ijkl:姓


请阐明这一点。或者任何参考问题/答案也可以。

这里我们假设中间名是全名最后一个组成部分的旁边

Public Function FixName(sIN As String) As String
    Dim st As String

    ary = Split(sIN, " ")
    st = ary(UBound(ary) - 1)
    ary(UBound(ary) - 1) = Left(st, 1) & "."
    FixName = Join(ary, " ")
End Function

编辑#1:

用户定义函数(UDF)非常易于安装和使用:

  • ALT-F11将显示VBE窗口
  • ALT-I ALT-M打开一个新模块
  • 粘贴内容并关闭VBE窗口
  • 如果保存工作簿,则自定义项将与工作簿一起保存。 如果在2003年以后使用Excel版本,则必须保存 文件的格式为.xlsm而不是.xlsx

    要删除UDF,请执行以下操作:

  • 如上所述打开VBE窗口
  • 清除代码
  • 关闭VBE窗口
  • 要使用Excel中的自定义项,请执行以下操作:

    =myfunction(A1)

    要了解有关宏的更多信息,请参阅:

    有关自定义项的详细信息,请参见:


    必须启用宏才能工作

    假设没有后缀,例如Sr/Jr/III等,并且每个部分都是一个单词,安全吗?例如,没有像范德维尔、德莫尔内这样的姓,也没有像乔治·赫伯特·沃克·布什这样有多个中间名的人?是的,赫伯特·沃克·布什就是这样fine@user3152887请参阅我的编辑#1。。。特别是关于如何以及在何处安装UDF()。每个人都有中间名?@WillBeDeleted海报上就是这么说的。