.Cell中的TextBox.value复制为double |复制忽略逗号

时间:2018-07-27 08:43:14

标签: excel vba excel-vba

大家好,我无法将计算出的值并存储在Me.TextBox中的值复制到单元格中。 值是1.11的两倍,但是当我尝试将其复制到单元格时,它变为111,而忽略了逗号

代码是这样的

Private Sub valuesadd_Click()
    Dim lRow As Long
    Dim ws As Worksheet
    Set ws = Worksheets("x")

    'searching empty row
    lRow = wsf.Cells(Rows.Count, 1) _
      .End(xlUp).Offset(1, 0).Row

    'copying
    With ws
      .Cells(lRow, 3).Value = TextBox1.Value
    End With
End Sub

Private Sub CALC_Click()
    Dim ws As Worksheet
    Set ws = Worksheets("y")

    Calc.TextBox1.Text = Cstr(ws.Cells(A.ListIndex, 1).Value * B.Value) 
End Sub

所以我尝试msgbox TextBox1.Value,它在复制之前和之后都像1,11一样,但是当涉及到With ws.Cells(lRow, 3).Value时,我尝试以msgbox的形式将其存储为111

为什么?! 我在做什么错

2 个答案:

答案 0 :(得分:1)

您需要确保在文本框中输入了正确的小数点分隔符。

Application.DecimalSeparator 'gives the correct separator

因此,如果您使用:

TextBox1.Value = Replace(TextBox1.Value, ".", Application.DecimalSeparator)
TextBox1.Value = Replace(TextBox1.Value, ",", Application.DecimalSeparator)
With ws
    .Cells(lRow, 3).Value = Cdbl(TextBox1.Value)
End With

它独立于您的本地化。您可以输入,.,两者都会产生正确的小数点分隔符。

答案 1 :(得分:0)

.Cells(lRow, 3).Value = CDbl(Replace(TextBox1.Value, ".", ","))

帮助, 也找到了解决方法

Calc.TextBox1.Value = Cdbl(...)

 With ws
      .Cells(lRow, 3).Value = Cdbl(TextBox1.Value)
    End With

我不知道为什么必须要2次。