[算表] VBA比較運算子問題

看板Office作者 (翼をください)時間11年前 (2014/09/03 10:11), 編輯推噓0(008)
留言8則, 2人參與, 最新討論串1/1
軟體:Office Excel 版本:2010 我想要用時間來進行條件判斷,因為時間資料來源是Timer(自午夜迄今的秒數) 我想設定中午12點開始 於是寫了─ If 12 * 60 * 60 < Timer then . .. ... (以下省略) End If 但是執行的時候會產生錯誤訊息"溢位" 於是我進一步測試下列運算─ MsgBox 12 * 60 * 60 = 43200 結果還是顯示"溢位",但是改成─ MsgBox 43200 = 43200 '(把12*60*60的運算直接算出來=43200) 結果是正確的,這是怎麼回事呢? 進一步試驗,如果是 11.999999 * 60 * 60 就不會產生溢位錯誤 難道比較運算子有內定的資料格式,導致我的乘法運算產生錯誤? 因為上面提到的需求,我需要一個 小時 * 60 * 60 的寫法來快速變更設定時間 所以才會想要從這邊了解,如果可以得到答案就能夠更準確的對應, 不然最後可能也就是多設定個變數先算出秒數再來比較了吧... 希望有前輩不吝指點,謝謝!! -- ┌─────────────────────────────┐ │就這樣,終於到了啟程的日子。 │ │和來機場送行的朋友們說著玩笑話,其實內心恍恍惚惚像在作夢。│ │也似乎是因為,為了走到「出發」這一步,耗盡了全部心力。 │ └─────────────────石田裕輔《不去會死!》─┘ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.249.136 ※ 文章網址: http://www.ptt.cc/bbs/Office/M.1409710260.A.3CE.html

09/03 10:14, , 1F
結果剛剛設定變數 A = 12 * 60 * 60 也是溢位... Why?
09/03 10:14, 1F

09/03 10:15, , 2F
補充:有先 Dim A as Long
09/03 10:15, 2F

09/03 10:16, , 3F
改12# * 60 * 60試試
09/03 10:16, 3F

09/03 10:17, , 4F
謝謝蘇大! 方便告訴我問題所在嗎? 這問題好詭異呀~~~
09/03 10:17, 4F

09/03 10:40, , 5F
http://goo.gl/VJqIsh 請看網頁下方網友回覆
09/03 10:40, 5F

09/03 10:42, , 6F
原因因就是提供算式它判斷為integer,因此超過32767時就溢
09/03 10:42, 6F

09/03 10:42, , 7F
09/03 10:42, 7F

09/03 10:57, , 8F
謝謝蘇大~~~~
09/03 10:57, 8F
文章代碼(AID): #1K1dYqFE (Office)
文章代碼(AID): #1K1dYqFE (Office)