我有許多含有多張學生數據的excel工作簿。Excel - 刪除中間名並用第一個字母替換
學生的名稱格式爲:ABCD EFGH IJKL先生
其中:ABCD:名; Efgh:中間名; Ijkl:姓氏
我希望能夠運行宏。我是使用Excel的季節性用戶。但是在一些論壇上閱讀讓我想到了宏。
宏應該能夠名稱轉換爲:ABCD先生E. IJKL
其中: ABCD:名 E.:中名,剝離除第一個字母的所有字母的;中間名的長度不盡相同。 Ijkl:姓氏
請說明相同。或者任何參考問題/答案也可以。
我有許多含有多張學生數據的excel工作簿。Excel - 刪除中間名並用第一個字母替換
學生的名稱格式爲:ABCD EFGH IJKL先生
其中:ABCD:名; Efgh:中間名; Ijkl:姓氏
我希望能夠運行宏。我是使用Excel的季節性用戶。但是在一些論壇上閱讀讓我想到了宏。
宏應該能夠名稱轉換爲: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)是非常容易安裝和使用:
如果您保存工作簿時,UDF將保存它。 如果您在2003年以後使用的是Excel版本,則必須將該文件保存爲.xlsm而非 。XLSX
要刪除UDF:
從Excel使用UDF: (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
宏必須爲此啓用上班!
假設沒有後綴,例如Sr/Jr/III等,並且每個部分都是單個單詞,是否安全?例如,沒有像Van der Wiel或de Mornay這樣的姓氏,或者像喬治赫伯特沃克布什那樣擁有多箇中間名的人? –
yup @HerbWolfe會很好 – GenXCoders