【问题标题】:EXCEL VBA: Scientific Notation in a Userform TextboxEXCEL VBA:用户表单文本框中的科学记数法
【发布时间】:2018-07-26 16:29:04
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: excel vba userform scientific-notation


    【解决方案1】:

    您可以使用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的部分内容)

    【讨论】:

    • 太棒了!这非常适合用户表单应用程序。非常感谢!!
    【解决方案2】:
     tbNum.Text = Format(Sheet1.Cells(1, 1).Value, "Scientific")
    

    在单元格中取值并将其转换为科学计数法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多