gpt4 book ai didi

vba - 防止 Excel 从 VBA 重新格式化科学记数法

转载 作者:行者123 更新时间:2023-12-02 16:58:11 25 4
gpt4 key购买 nike

在您声称这可能是重复之前,请先听我说完。

我正在尝试为我的公司编写一些代码,以便能够将数据解析到服务器上,为此,我需要使用科学记数法。

我已经弄清楚如何使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com