- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在您声称这可能是重复之前,请先听我说完。
我正在尝试为我的公司编写一些代码,以便能够将数据解析到服务器上,为此,我需要使用科学记数法。
我已经弄清楚如何使用 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+ 和/或有效的答案。
最佳答案
为了让Excel按照您的描述显示它,在将转换输入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 显示值的方式,您必须以文本形式输入值,或者根据需要设置单元格格式。
关于vba - 防止 Excel 从 VBA 重新格式化科学记数法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25001155/
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我是一名优秀的程序员,十分优秀!