✔ 最佳答案
對不起,首先想說一下我對在 Excel 裏使用 VB 的看法。
用 VB 來做這種普通的問題實在是 overdone 了。
Excel 之所以是一格格,就是為了方便人們處理簡單的數字運算,只要輸入簡單的公式,用滑鼠按幾下,想要的結果就整齊地排列並呈現出來。
若每一件簡單的任務都用 VB 做,不理 Excel 本身的 function 能否容易地做到,那就失去使用 spreadsheet 原來的意義,倒不如真接用真正的 programming language 來做好了。
況且以上的 VB code 亦不對。
問題中的文字只要用 substitute() 移走 underscore ,然後用 value() 將文字轉做數字即可。
=VALUE(SUBSTITUTE(A1,"_",""))
圖片參考:
http://big-lin.com/Documents/7007021300909_Excel_Remove_Underscore.JPG
2007-02-16 13:10:13 補充:
<big><big><span style="font-family:Calibri;">就算問題中的「文字」裏不只有 underscore ,還是可以用一條公式做到的:</span><br><span style="font-family:Calibri;">=1*MID(A2,MATCH(TRUE,ISNUMBER(1*MID(A2,ROW($1:$20),1)),0),2+COUNT(1*MID(A2,ROW($1:$20),1)))</span><br></big></big>
2007-02-16 13:11:42 補充:
喔,對不起,剛剛的補充亂了碼。就算問題中的「文字」裏不只有 underscore ,還是可以用一條公式做到的:=1*MID(A2,MATCH(TRUE,ISNUMBER(1*MID(A2,ROW($1:$20),1)),0),2+COUNT(1*MID(A2,ROW($1:$20),1)))注意這條是 array formula ,完成輸入時要按 Ctrl+Shift+Enter 而不是平時那樣按 Enter 就可以。
2007-02-16 13:23:13 補充:
Excel 檔下載:
http://big-lin.com/Documents/7007021300909_Excel_Remove_Underscore.xls
2007-02-16 14:32:39 補充:
回美香小姐:多謝你的回應。其實,剛剛這條新公式比較長,而且要明白首先要熟悉 array formula ,這時候簡短的 VBA 或許比較優勝。若有朋友需要解釋,我可另寫一個詳細的 Text 檔上傳,這裏的補充功能每次限寫三百字太麻煩了。不過, VBA 也不是人人都懂,你提供了 code ,發問者應付了當前的問題,但若他本人不懂 VBA ,以後若要修改調校亦不易,就算是以上這條長公式,我也覺得還是比 VBA 容易掌握及學習。所以我認為,非不得已最好不要用 macro 。當然,甚麼時候是非不得已,就要用者自己決定了。
2007-02-16 14:33:12 補充:
另外,如我之前所說,你以上的 code 有問題,並不能用於題目裏的「文字」。我猜你測試時沒有用有逗號的數字,但發問者的題目裏是有逗號的。當你的 code 裏第二次遇上非數字 (如那個逗號) 時,就會停止,不能正確轉換。我建議可以改成以下這樣:
2007-02-16 14:33:51 補充:
Public Function MIDVALUE(v) As DoubleFor t = 1 To Len(v)If IsNumeric(Mid(v, t, 1)) ThenX = X & Mid(v, t, 1)End IfNextMIDVALUE = Val(X) / 100End Function最後,很高興與你交流心得,希望大家都有所得益。
2007-02-20 17:42:48 補充:
To: 阿nam真是厲害的公式。看了你的公式實在獲益不少!我的簡直是十倍 overdone 。有時想刪掉我的回答,哈哈!
2007-02-27 08:27:04 補充:
' ' ' ' ' ' To kkho66666,我對我的公式作了一些說明,希望對你了解我的公式有幫助,請下載以下 Excel 檔:
http://big-lin.com/Documents/7007021300909_Excel_Remove_Underscore_Explained.xls我的公式比阿 nam 的累贅很多,只適合於學習 array formula ,不宜用於你的問題上。
2007-02-27 08:28:51 補充:
如阿 nam 所說,你可以用 Excel 中的 Evaluate Formula 來研究公式是怎麼一步一步計出答案的。