一般手動作法最快的作法,是將左欄複製,右欄貼上,然後在右欄增加一個"="號,這樣就OK!!
不過若項目很多!這樣的作法就不切實際,或許您會想說,才差個等號,就用字串手法處理,例如[A2]:3+5 那[B2]中就填入"="&A1,不過很慘,Excel認定是純字串而給你顯示 =3+5。
目前在下知道的方式有三個,
1. 利用儲存格的名稱定義來處理:
先想一個你記得住的名稱(中文也可以),就先以ev做範例好了,點選[B2],在下拉式工具表中,找到 插入-名稱-定義 ,點選後會彈出對話框,
對話框中,上頭現有名稱填入ev,下頭參照到填入=EVALUATE(A2),然後按確定。
其中,EVALUATE是Excel巨集中的一個方法,他會將計算式轉換成數值,至於將哪個儲存格的資訊轉成數值呢,是他左邊那個儲存格。之所以一開始先點選[B2]再定義名稱,且指定參照[A2]就是這個用意,若有需要利用$號鎖欄或鎖列,因個人需要自行變通。
定義完後按確定後,[B1] 儲存格並沒有變化,你需要鍵入 =ev,就會有您需要的數據了。其他[B3]以下的也鍵入 =ev,或用拖拉複製等,就可以達到需求。
或許您會想說,那幹嘛不直接在[B2]儲存格打=EVALUATE(A2),你可以試試,應該不行吧,"拍謝"!!EVALUATE這個方法不是Excel內定的函數,沒辦法這樣使用。
2. 利用自建的函數
上頭說到沒法運用 =EVALUATE(A2)來達到需求,不過呢,自己建函數總可以吧,假設我的函數叫 eval(要如何自建函數請參這篇)
Function eval(rng As Range)
eval = Application.Evaluate(rng.Value)
End Function
這樣您就可以在[B2]利用=eval(A2)來達成數值的顯示了。
這樣的作法比第一種作法好,第一種作法目前只能達到左邊隔壁儲存格的數據顯示,若是要跳一格或兩格....,你就要重新定義名稱嚕。
3. 利用VBA去掃描填入資料
這個方法彈性比較差, 但程式功能比較強,比如計算式中有某些註解以方便檢核等等額外功能,就需要利用程式去篩選註解字串,然後再行運算成數值。像我有個數量計算表的案例,就是利用這樣的作法達成。
解了我的疑惑,感恩~
回覆刪除哈哈!!您客氣了..
刪除感謝您,第一個方法試過很有趣。
回覆刪除不過第一個方法我試了有一個問題如下,如果您清楚還請您幫忙。
剛建好後,算式那格改了,答案的那格也會立刻隨之變動;
但存檔後(不論是否存成.xlsm)再開,答案就不會隨算式改了。
先謝謝您
不好意思!!幫不上您...><
刪除