首页 > 解决方案 > .Cell 中的 TextBox.value 复制为 double | 复制忽略逗号

问题描述

大家好,我在将计算的值复制并存储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,我尝试将那个单元格作为 msgbox111

为什么?!我究竟做错了什么

标签: vbaexcel

解决方案


您需要确保在 TextBox 中输入了正确的小数分隔符。

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

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


推荐阅读