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)非常易于安装和使用:
- ALT-F11调出VBE窗口
- ALT-I ALT-M打开一个新的模块
- 粘贴东西,closuresVBE窗口
如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx
要删除UDF:
- 如上所示调出VBE窗口
- 清除代码
- 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必须启用这个工作!