我在尋找一些幫助將我的公式轉換爲VBA代碼。EXCEL 2010:使用VBA將單元拆分爲多個單元格
目前我的數據是在列($ T10)
我現在有類似的數據行:
李四([email protected]___.com)
李四,SR(noemail-8858 )
第一第二DE姓surname2([email protected]_______.com)
第一中學姓([email protected]_____.net)
的公式來獲取 '正常' 的名字:
[First Surname] =IF($C2678=1,(LEFT(B2684,SEARCH("(",B2684)-1)),"")
[first name] =IF($C4068=1,(LEFT(TRIM(B4074),FIND(" ",TRIM(B4074))-1)),"")
[middle name] =IF($C3888=1,(IF(LEN(TRIM(B3894))-LEN(SUBSTITUTE(B3894," ",""))<>3,"",LEFT(MID(TRIM(B3894),FIND(" ",TRIM(B3894))+1,99),FIND(" ",MID(TRIM(B3894),FIND(" ",TRIM(B3894))+1,99))-1))),"")
[surname] =IF($C4068=1,(TRIM(RIGHT(SUBSTITUTE(TRIM(LEFT(B4074,FIND("(",B4074)-1))," ",REPT(" ",99)),99))),"")
[email] =IF($C4068=1,(MID(TRIM(B4074),FIND("(",TRIM(B4074))+1,FIND(")",TRIM(B4074))-FIND("(",TRIM(B4074))-1)),"")
結果(編輯):
| jane Doe | jane | middle | Doe | [email protected]____.com |
| first surname | first | middle | Surname | noemail-8858 |
我已經看了兩個TRIM
和SPLIT
功能,但我一直沒能找到一種方法,在一個小區要分割給變量(, ()
) 。
我用:
http://www.homeandlearn.org/left_and_right_functions.html
http://www.exceltrick.com/formulas_macros/vba-split-function/
他們是不是真的拼湊我需要什麼。我可以獲得一些基礎知識,但不是將更復雜的公式轉換爲VBA。
非常感謝提前。
這是我先前在2014年的詢問的延伸,我能夠獲得公式。
Excel 2010 search for text in IF function - separate cell data
您需要回答之前,任何人都可以開始編寫代碼的問題:如何在Excel中應該知道,如果在NAME2'名1名2 name3'是一箇中間名或第二個姓氏?就像希拉里羅德漢姆克林頓和簡芭芭拉米勒一樣。 – teylyn 2015-02-12 02:52:11
使用VBA而不是公式的原因是由於VBA提供了更多的靈活性。所以你需要做的第一件事是設計你想要使用的規則來分隔名字段。一旦你完成了這項任務,編碼應該是微不足道的。但是爲解析名稱設計明確而明確的規則並不是。 – 2015-02-12 03:16:35
基本上,你不能知道,數據中沒有規定哪個單詞是姓氏。公式旨在提取我需要的內容。任何標記在「中間」名稱中的數據都將在下一步中檢查數據,以查看它是否是合法的中間名,或是任性的姓氏1。 – MrsAdmin 2015-02-12 03:16:51