2013-07-16 15 views
1

在VBA中,as this specification顯示,數值可以有幾種類型:Double,Integer,Long,LongLong,Single,Decimal,Byte。但是,似乎在Excel中,對於包含數值的單元格,其類型始終被認爲是DoubleExcel中的單元格的數值的類型總是被視爲DOUBLE?

在Excel公式或VBA代碼中有幾個函數,它們可以檢查單元格的數據類型。例如,TypeName Function in VBA,TYPE function in Excel,IS functions in Excel等。但它似乎是最好的類型,他們可以返回一個數值是,其他數字類型(整數,長,字節...)永遠不能被檢測到。

任何人都可以告訴我,如果我對/錯?

回答

2

參考 - http://www.cpearson.com/excel/rounding.htm

Excel存儲的數字有所不同,你可能有他們的格式顯示在工作表上。在正常情況下,Excel將數值存儲爲「雙精度浮點」數字,或簡稱「雙精度」。這些是8個字節的變量,可以將數字精確保存到大約15個小數位。您可能只有兩個小數位顯示在工作表上,但底層值有完整的15位小數。

因此,如果您正在從單元格中讀取數字,實際上沒有理由使用除Double之外的任何數據。

3

VBA的類型名是正確能夠解釋DateBoolean但是,正如你提到的,整數和小數被視爲Double

在一定程度上,Excel和VBA是兩種不同的應用程序(本質上)和Excel單元格格式不直接對應於VBA數據類型。

我們需要檢查我們從Excel中檢索到的Value,並在必要時將這些值轉換爲適當的數據類型。同樣,當我們將信息傳遞迴Excel時,我們經常需要格式化這些值,和/或格式化我們插入它們的單元格。

+0

似乎是一個有趣的答案! – Santosh

相關問題