从单元格获得价值,而无需在vbamacros中转换

我有一个与VBAmacros问题。 单元格包含值941144280284022000000.但是,当试图在macros中获取此值时,variables等于9.41144280284022E + 20。 是否有可能获得“真正”的价值? 谢谢。

这里是一个例子:

Sub dural() MsgBox ActiveCell.Text End Sub 

在这里输入图像说明

这将确保长串数字不被转换为数字。

编辑#1:

这假定单元格实际上显示数字的长串。 如果单元格显示#### ,那么sub就会提取。 如果电池显示9.41E + 20 ,那么这是我的小组将拿起。

我的小组不一定会提取配方栏的内容。

尝试一个简单的:

 Dim myVar as Variant myVar = CDec(Range("A1").Value) 

如果你希望存储一个看起来像一个数字(或者是一个数字),但是精确度超过15位的值,那么你必须 input值之前将单元格格式化为文本,或者用一个单引号将值加上向Excel表示该值将被视为文本而不是数字。

如果你这样做,那么一旦input值,就很有可能被Excel修改。 示例值中的尾随零意味着这种情况在这种情况下不会发生,但是尝试将最后一个0更改为1,您将看到我的意思。

您input:941144280284022000001

Excel将其转换为:94114428028402200000 0

更多阅读: https : //en.wikipedia.org/wiki/Numeric_precision_in_Microsoft_Excel