返回列表 上一主題 發帖

[發問] 計算過程中溢位

回復 1# EGBT


VBA 的說明

溢位 (錯誤 6)
當指定超出目標的限制時就會發生溢位。此錯誤有以下的起因和解決方法:
此指定的結果、計算或資料型態轉換太大以致於無法在變數型態所允許的範圍內表示出來。
指定值到足夠表示的型態之變數上。
指定給屬性時超出此屬性能接受的範圍。
確定您的指定適合此屬性的範圍。.
當您試圖在計算中使用數字時,數字被強迫轉換成一個整數,但是結果超出了整數的範圍。例如:
    Dim x As Long

    x = 2000 * 365   ' 錯誤:溢位
要解決該問題,按如下方式輸入數字:
    Dim x As Long
x = CLng(2000) * 365
詳細資訊,可選取有疑問的項目並按下 F1 (在Windows中) 或 HELP (在Macintosh上)。

了解看看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim x  As Variant  '任何型態
  4.     Range("A1") = 500
  5.     MsgBox TypeName([a1].Value)
  6.     '儲存格數字範圍 都是Double 資料型態
  7.    
  8.     MsgBox TypeName(2000)
  9.     '型態轉換函數 'CLng  'CDbl
  10.     MsgBox TypeName(CLng(2000))
  11.     MsgBox TypeName(CDbl(2000))
  12.     x = CLng(2000) * 365
  13.     MsgBox TypeName(x)
  14.     x = 10 ^ 10
  15.     MsgBox TypeName(x)
  16.   '  x = CLng(x) * 365   '溢位
  17.     x = CDbl(x) * 365
  18.     MsgBox TypeName(x)
  19.    
  20. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 能付出愛心就是福,能消除煩惱就是慧。
返回列表 上一主題