ComboBox中的选定值未正确插入单元格

时间:2018-07-13 13:36:25

标签: excel excel-vba

我有以下Excel电子表格:

       A          B
1    ComboBox1
2      1.000
3     10.000
4    100.000
5

此列表通过以下VBA加载到ComboBox中:

Sub UserForm_Activate()
    Dim myArr As Variant
    Dim myRng As Range

    Set myRng = Sheet1.Range("A2:A4")
    ReDim myArr(myRng.Cells.Count)

    Dim i As Long
    For i = LBound(myArr) To UBound(myArr)
        myArr(i) = Format(myRng.Cells(i + 1), "#,##")
    Next i

    ComboBox1.List = myArr
End Sub

此VBA需要在ComboBox中包含数千个分隔符。

到目前为止,所有这些都工作正常。


现在,我想将ComboBox中的选定值插入单元格B1

Sub ComboBox1_Change()
    Sheet1.Range("B1").Value = ComboBox1.Value
End Sub

很遗憾,此VBA不会插入我在ComboBox中选择的值。它总是剪切最后三个0,因此当我在单元格B1 的组合框中选择1.000时,将插入值1而不是10.00010已插入,依此类推。

我想这个问题是由"#,##"的VBA代码中的ComboBox格式化引起的,但是我找不到找到一种解决方法来将成千上万个spipper保留在ComboBox中,并且在单元格B1 中插入正确的值。

您知道我如何解决此问题吗?

1 个答案:

答案 0 :(得分:1)

10.000在Excel中被理解为10,000,因此最后的尾随零将被自动删除。为了确保您得到想要的东西,最好的方法是从.中删除Combobox1并将其传递给Excel:

Range("B1") = Replace(ComboBox1, ".", "")  

可以在Excel中以文本格式传递2.000

Range("B1") = ComboBox1