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

时间:2016-09-18 14:01:54

标签: excel macros

我有很多带有多张学生资料的Excel工作簿。

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

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

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

宏应该能够将名称转换为:Abcd E. Ijkl先生

其中: Abcd:名字 E.:中间名,删除除第一个字母之外的所有字母;中间名称的长度各不相同。 Ijkl:姓氏

请详细说明。或者任何参考问题/答案都可以。

1 个答案:

答案 0 :(得分:3)

这里我们假设中间名是全名的倒数第二个组成部分。

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

enter image description here

修改#1:

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

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除UDF:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 从Excel使用UDF:

      = myfunction的(A1)

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

      http://www.mvps.org/dmcritchie/excel/getstarted.htm

      http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

      有关UDF的详细信息,请参阅:

      http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

      必须启用宏才能使其生效!