在你声称这可能是重复之前,请听我说。
我试图为我的公司编写一些代码,以便能够将数据解析到服务器上,为了做到这一点,我需要使用科学记数法。
我已经找到了如何使用Format()
将常规数字转换为科学记数法,但我的问题是我需要Excel显示0.0000e + 00,而不是0.00e + 00
我的代码非常基础:
Sub ConvertScientific()
Dim org, conv
If IsNumeric(Range("a2").Value) = True Then
org = Range("a2").Value
Else
MsgBox ("This is not a valid number!")
End If
conv = Format(org, "0.0000E+00")
Range("b2").Value = conv
End Sub
其中大部分内容甚至不需要触摸,但我遇到的问题是,尽管我已将格式定义为"0.0000e+00"
,但它仍然会导致0.00e+00
格式。
这对我的程序非常重要,主要是因为它意味着在没有定义的电子表格的情况下自动运行,其中十进制值在某些单元格上设置为4。我知道可以使用我想要的格式,但我能够做到的唯一方法就是手动完成。
非常感谢任何有建议的人。
编辑:
我发现重新格式化的一种可能方法是使用Range().NumberFormat
属性,但是有两行代码似乎很傻,其中一行应该足够了。如果有人能解释为什么我的代码不能正常工作,请随时告诉我1+和/或有效答案。
答案 0 :(得分:4)
为了让Excel按照你的描述进行显示,在将conv输入到B2之前,你可以将其格式化为四位小数科学或文本格式;或者您可以在conv之前使用单引号
选项1
With [B2]
.numberformat = "@"
.value = conv
end with
选项2
with [B2]
.NumberFormat = "0.0000E+00"
.Value = conv
end with
选项3
[B2].Value = "'" & conv
编辑:Excel会将数字值视为数字;它根据它正在使用的IEEE标准存储它们,并在它认为合适时显示它们。这就是您的参赛作品。为了控制Excel如何显示值,您必须输入值作为文本,或者根据需要格式化单元格。