我有以下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.000
值10
已插入,依此类推。
我想这个问题是由"#,##"
的VBA代码中的ComboBox
格式化引起的,但是我找不到找到一种解决方法来将成千上万个spipper保留在ComboBox
中,并且在单元格B1 中插入正确的值。
您知道我如何解决此问题吗?
答案 0 :(得分:1)
10.000
在Excel中被理解为10,000
,因此最后的尾随零将被自动删除。为了确保您得到想要的东西,最好的方法是从.
中删除Combobox1
并将其传递给Excel:
Range("B1") = Replace(ComboBox1, ".", "")
可以在Excel中以文本格式传递2.000
:
Range("B1") = ComboBox1