前幾天,收到一個使用需求,原本要以開發一個網站去處理,但最後決定由修改使用者原有的 Excel 檔來處理之。其條件如下:
條件一:提供之 Excel 欄位資料型態不可變更,且在原有範圍內不得增加欄位。
條件二:前兩個因子判斷條件:二個數據均超過上下限時不修正,其一為OK時,顯示值為上限或下限。
條件三:第三個因子判斷條件:二個數據平均超過上下限時,顯示值為上限或下限。
條件四:第四個因子判斷條件:二個數據均超過下限時不修正,其一為OK時,顯示值為下限。
條件五:當判斷出來之數值為 NG 時,必須彈出警告小視窗。
條件六:當判斷出來之數值為 NG 時,其值必須顯示為紅色字體。
光看以上條件,似乎沒什麼太大的問題。但實際問了相關資訊後,其判斷條件算是有一點點複雜。以前兩個判斷因子來看,每個判斷條件中,各有兩個輸入值及兩個標準值。所以,至少會有底下的狀況發生:
狀況一:兩個值均小於下限,判定為NG,使用警告及文字變色。
狀況二:兩個值均大於上限,判定為NG,使用警告及文字變色。
狀況三:第一個值低於下限,第二個值落於範圍中,顯示下限。
狀況四:第一個值落於範圍中,第二個值低於下限,顯示下限。
狀況五:第一個值高於上限,第二個值落於範圍中,顯示上限。
狀況六:第一個值落於範圍中,第二個值高於上限,顯示上限。
狀況七:兩個值的範圍均大於上下限範圍。
使用者告知此狀況七不會發生,故不考慮。所以,至少有六個狀況可能發生。若以 Excel 的內建函數來做,原則上是可以做到判斷式的部份,但似乎沒辦法彈出警告視窗,所以只好考慮使用 VBA。
由於我沒在 Excel 中使用過 VBA,只得求助一位老友的協助。一開始他也謙虛的說他已經五年沒寫過程式了,所以得花一些時間回想,但總比我已經九年沒碰程式的狀況還好太多了吧!而且,我還不知道如何在 Excel 中使用自定函數呢!
隔日上班前,信箱中躺著他寄來的範例。一打開來看,果然幫了我太多的忙。雖然範例中的狀況不符合我的需求,但我卻可以依我自己的實際狀況,來進行自定函數的撰寫。
好友寫的範例檔:(傳入兩個變數及傳出一個變數,NG的數字改負值)
經過我修改後的檔:(傳入四個變數及傳出一個變數,NG的數字彈出警告視窗及使用Excel 中的設定格式化的條件將文字變色)
當然,我也知道這種寫法並不是最佳的寫法,尤其是演算法的部份。若各位看倌有更好的演算法要提供的話,我也非常的歡迎與感謝。至此,終於可以接下去撰寫另外三組要判斷狀況的自定函數。
人生,不就是由一連串的選擇所組合而成。 故事,通常可以從微小的細節中受到感動。 我是「高級水電工」,也是華語導遊/華語領隊, 就讓我們一起共同體驗人生、體驗感動。 |

|
限會員,要發表迴響,請先登入
- 3樓. kathy.2010/01/08 14:28捏~捏~ 請問一下高級水電工
罰抄十遍的部份用"另存圖片"和"貼上"功能來作,算不算違法?
"糟糕級"被電工 啟
- 2樓. 阿菊2010/01/08 13:52看沒有啦!
完全看沒有啦!
- 1樓. kathy.2010/01/08 13:29ㄝ....
本看倌對於這個函數,也許會有更好的想法...。
但可能要十年之後,才能告訴你。(前八年研究如何看懂這個問題,後二年再想個更好的修改方法)