2016-09-18 38 views
1

我有許多含有多張學生數據的excel工作簿。Excel - 刪除中間名並用第一個字母替換

學生的名稱格式爲:ABCD EFGH IJKL先生

其中:ABCD:名; Efgh:中間名; Ijkl:姓氏

我希望能夠運行宏。我是使用Excel的季節性用戶。但是在一些論壇上閱讀讓我想到了宏。

宏應該能夠名稱轉換爲:ABCD先生E. IJKL

其中: ABCD:名 E.:中名,剝離除第一個字母的所有字母的;中間名的長度不盡相同。 Ijkl:姓氏

請說明相同。或者任何參考問題/答案也可以。

+0

假設沒有後綴,例如Sr/Jr/III等,並且每個部分都是單個單詞,是否安全?例如,沒有像Van der Wiel或de Mornay這樣的姓氏,或者像喬治赫伯特沃克布什那樣擁有多箇中間名的人? –

+0

yup @HerbWolfe會很好 – GenXCoders

回答

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窗口

如果您保存工作簿時,UDF將保存它。 如果您在2003年以後使用的是Excel版本,則必須將該文件保存爲.xlsm而非 。XLSX

要刪除UDF:

  1. 彈出VBE窗口如上
  2. 清晰的代碼進行
  3. 關閉VBE窗口

從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

宏必須爲此啓用上班!

+0

不執行它說「sub」缺失 – GenXCoders

+0

@ user3152887看我的編輯#1 ... **特別是關於如何以及在哪裏安裝UDF()**。 –

+0

每個人都有中間名? –

相關問題