Excel – 删除中间名并用第一个字母replace

我有一些Excel工作簿与多张学生数据。

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

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

我想能够运行一个macros。 我是Excel的季节性用户。 但在一些论坛阅读让我有了macros的想法。

macros应该能够把名字转换成:Abcd E. Ijkl先生

其中:Abcd:名字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)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除UDF:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel中使用UDF:

= myfunction的(A1)

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

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

macros必须启用这个工作!