从单元格获得价值,而无需在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