我试图创建一个输入框,其中包含一个带小数的数字作为默认值。我将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位。
答案 0 :(得分:2)
看看here。重要的部分就在桌子下面:
您可以使用Type的允许值之和。例如,对于可以接受文本和数字的输入框,请将“类型”设置为1 + 2。
并在评论中稍微进一步说明:
如果Type为0,则InputBox以文本形式返回公式 - 例如,“= 2 * PI()/ 360”。如果公式中有任何引用,它们将作为A1样式引用返回。 (使用ConvertFormula在引用样式之间进行转换。)
尝试将类型设置为1,看看是否仍然可以使用公式和数字。文档让我认为你可以(基本上你免费获得公式)。由于您将类型设置为0,因此您将返回默认的文本类型。