VBA输入框带十进制逗号,将双精度转换为字符串

VBA输入框带十进制逗号,将双精度转换为字符串,vba,excel,Vba,Excel,我正在尝试创建一个Inputbox,它的默认值是一个带小数的数字。我将Inputbox设置为公式类型,因为用户可能输入公式或引用单元格 问题是Inputbox似乎去掉了逗号,并将数字转换为字符串。我可以用格式将数字转换为字符串,然后再返回一个数字,但精度会降低。我想知道发生了什么 代码是: Sub test() Dim Defolt As Double Defolt = 1.1866701960364 Dim InputValue InputValue = App

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

问题是Inputbox似乎去掉了逗号,并将数字转换为字符串。我可以用
格式将数字转换为字符串,然后再返回一个数字,但精度会降低。我想知道发生了什么

代码是:

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
结果如下:

谢谢

附言:地点是西班牙语。Excel版本是Excel 2010 32位。

看一看。重要的部分就在表格下面:

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

在下面的几句话中:

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

尝试将类型设置为1,然后查看是否仍然可以使用公式和数字。文档让我觉得你可以(基本上你可以免费得到公式)。由于将类型设置为0,因此将返回默认文本类型