是Excel中单元格的数值类型,始终被视为DOUBLE

  • 本文关键字:DOUBLE 类型 Excel 单元格 vba excel
  • 更新时间 :
  • 英文 :


如本规范所示,在VBA中,数值可以有几种类型:Double、Integer、Long、LongLong、Single、Decimal、Byte。但是,在Excel中,对于包含数值的单元格,其类型似乎总是被认为是Double

Excel公式或VBA代码中有几个函数可以检查单元格的数据类型。例如,VBA中的TypeName函数、Excel中的TYPE函数、Excel的IS函数等。但似乎它们可以为数值返回的最佳类型是Double,其他数字类型(Integer、Long、Byte…)永远无法检测到。

有人能告诉我我是对是错吗?

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

Excel以不同的方式存储数字,您可以将其格式化显示在工作表上。在正常情况下,Excel将数值存储为"双精度浮点"数字,简称"Doubles"。这些是8字节的变量,可以存储精确到小数点后15位的数字。工作表上可能只显示两位小数,但基础值的小数位数为15位。

因此,如果你正在从一个单元格中读取一个数字,那么除了Double之外,真的没有理由使用任何东西。

VBA的TypeName能够正确解释DateBoolean,但正如您所建议的,整数和十进制数被视为Double

在某种程度上,Excel和VBA是两种不同的应用程序(本质上),Excel单元格格式与VBA数据类型不直接对应。

我们需要检查从Excel中检索到的Value,并在必要时将这些值强制转换为适当的数据类型。同样,当我们将信息传递回Excel时,我们通常必须设置值的格式,和/或设置插入单元格的格式。

最新更新