請教下VBA Int型態顯示溢位...有點古怪??(內詳)

大致程序如下:因為內容挺多的,我取主要出問題的那塊

Sub 增減()
' 下註解處為 int 的範圍
'不知何故 近日部位 變數 @2021/12/9時,顯示溢位
'Integer 資料類型可對 32 位元處理器提供最佳效能。
'其他整數類資料類型在記憶體中載入和儲存的速度較慢。
'保存帶正負號的 32 位元 (4 位元組) 整數,值的範圍從
'-2,147,483,648 到 2,147,483,647。

Dim 近日部位 as integer, 昨日部位 as integer, 近日增減 as integer
dim SRow%

'抓BI欄最下列的列數
SRow = Cells(Rows.Count, "BI").End(xlUp).Row
近日部位 = Cells(SRow, "BI") '中斷出在這一列
昨日部位 = Cells(SRow - 1, "BI")
近日增減=近日部位-昨日部位
msgbox 近日增減
......
end sub


我看了下,近日的部位為 -33,300
昨日的部位為 -29,510
同時查了下BI欄位,其全欄位都是屬於數值 型態
而程序執行時中斷的地方會在
近日部位 = Cells(SRow, "BI")
這一列
真是莫名其妙了..
查很久查不出原因..試著把變數 近日部位 由 integer 改成 long
執行後就順利跑出結果..
恩..但這樣很佔空間 & 根本上問題是出在哪也不清楚啊..
不知有人知道是何情況會造成這般怪現像?
以上謝謝
文章關鍵字
VBA signed integer 範圍是-32768 到 +32767

新的VB.net才有32bit的integer
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!