EXCEL VBA:用户窗体文本框中的科学记数法

EXCEL VBA: Scientific Notation in a Userform Textbox

我正在使用 VBA 在 EXCEL 中开发用户表单。表单中用户输入的默认值之一是 1E-12。我需要在用户表单中显示它。但是,当我初始化表单中的文本框时,EXCEL 立即将值的表示更改为 0.000000000001(当我检查它时,在编辑器和用户表单中)。在计算上,当然,这不是问题,但是,它对用户来说有点难以阅读(并且在表格中占用 space 来显示整数)。有没有办法强制 EXCEL 在用户窗体文本框中以科学记数法显示此值?

谢谢!

 tbNum.Text = Format(Sheet1.Cells(1, 1).Value, "Scientific")

获取单元格中的值并将其转换为科学记数法。

您可以使用VBA.Strings.Format$函数来控制数字的字符串表示。

指定 "Scientific" 格式字符串会有点工作,但如果您需要控制精度级别,则需要更详细的格式字符串。您可以创建一个 FormatScientific 函数来抽象掉这种复杂性:

Public Function FormatScientific(ByVal value as Double, Optional ByVal precision As Long = 6) As String
    If precision < 1 Then precision = 1
    Dim formatString As String
    formatString = "0." & String(precision - 1, "0") & "#e-#"
    FormatScientific = Format$(value, formatString)
End Function

这里我把precision可选参数设为6如果没有指定;按您认为合适的方式进行调整。

现在您可以调用 FormatScientific(0.0000123456789) 并获得具有一致数量有效数字的 1.234568e-5,无论您给它什么,而 "Scientific" 格式字符串只会给您 1.23E-05,丢失了很多重要信息。

(改编自 this code 的部分内容)