Re: [問題] excel有函數可以指定傳回中文值嗎?

看板Office作者 (David)時間17年前 (2008/06/23 16:22), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串4/4 (看更多)
一點小補充 可保留原網頁code中的\s以去掉空格 另不打+號似乎也可(不確定) 標點符號也不要就找頭尾如 [!-~\s] 像word取代 ※ 引述《singermath (singer)》之銘言: : ※ 引述《jameskuo (一個人的日子...)》之銘言: : : (若是和其他不同軟體互動之問題 請記得一併填寫) : : 您所使用的軟體為:excel 2003 : : 版本:2003 : : 問題:假如A1裡面有一堆中文和英文,有什麼函數可以把所有中文挑出來,排除英文? : : 然後出現在B1,謝謝幫忙。 : 如果 Excel 內建函數無法簡易的滿足你的需求(或是還找不到相關函數) : 可以自己用VBA寫個自己的函數來解決 : 以下是試寫內容,若有錯誤請幫忙指正,感謝 : (參考下面這篇文章: : http://cat14051.mysinablog.com/index.php?op=ViewArticle&articleId=122081 : -------------------------------------------------- : Function myreplace(oristr) : Dim regex : Set regex=CreateObject("vbscript.regexp") : regex.Global=True : regex.Pattern="[a-zA-Z]+" regex.Pattern="[a-zA-Z\s]" : myreplace=regex.Replace(oristr,"") : Set regex=Nothing : End Function : --------------------------------------------------- : 關鍵在於 : regex.Pattern="[a-zA-Z]+" : 此行是尋找目標為 a-z 及 A-Z : 再下一行則是將符合的目標進行取代 : 若除了英文字母外也不需要 數字 0-9 : 可改成 : regex.Pattern="\w+" regex.Pattern = "[\w\s]" : (相關內容可以參考正則式的寫法) : 用法則跟一般內建的 vlookup() 或是 mid() 一樣 : 在儲存格輸入 =myreplace("abcde測試用123結束") : 就可以了 : ------------------------------------------------------ : 自定義函數要放在 [模組] 下才有作用 : Ctrl+F11 ->Microsoft Excel 物件 -> 右鍵插入 [模組] : 把上面的程式碼貼上上面即可 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.54.189

06/23 16:32, , 1F
感謝補充...另請教全型的英文字母若也要去掉,不曉得
06/23 16:32, 1F

06/23 16:32, , 2F
有甚麼好方法...
06/23 16:32, 2F

06/23 16:41, , 3F
就把全形也打進去 XD [!-~!-~\s]等...
06/23 16:41, 3F
文章代碼(AID): #18NrrMLP (Office)
文章代碼(AID): #18NrrMLP (Office)