【问题标题】:VBA Inputbox strips decimal comma, converts double to stringVBA 输入框去除十进制逗号,将双精度转换为字符串
【发布时间】:2015-10-19 23:45:42
【问题描述】:

我正在尝试创建一个输入框,它有一个带小数的数字作为默认值。我将 Inputbox 设置为公式类型,因为用户可能会输入公式或引用单元格。

问题在于输入框似乎去掉了逗号并将数字强制转换为字符串。我可以用Format 修复这个将数字转换为字符串的问题,然后再返回一个数字,但会丢失精度。我想了解发生了什么。

代码是:

Sub test()
    Dim Defolt As Double
    Defolt = 1.1866701960364
    Dim InputValue
    InputValue = Application.InputBox("Value?", , Defolt, , , , , 0)
    'for this example, the user just clicks OK to the default value
    Debug.Print InputValue
End Sub

结果如下:

谢谢!

ps:语言环境是西班牙语。 Excel 版本为 Excel 2010 32 位。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    看看here。重要的部分就在桌子下面:

    您可以使用类型的允许值的总和。例如,对于可以接受文本和数字的输入框,请将 Type 设置为 1 + 2。

    在评论中再往下一点:

    如果 Type 为 0,InputBox 以文本形式返回公式,例如“=2*PI()/360”。如果公式中有任何引用,它们将作为 A1 样式的引用返回。 (使用 ConvertFormula 在参考样式之间进行转换。)

    尝试将类型设置为 1,看看是否仍然可以使用公式和数字。该文档使我认为您可以(基本上您可以免费获得公式)。由于您将类型设置为 0,因此您将恢复默认的 Text 类型。

    【讨论】:

      猜你喜欢
      • 2015-06-14
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 2019-08-31
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多