Vba TextBox.value在.Cell中复制为双精度|复制忽略逗号
大家好,我无法将计算并存储在Vba TextBox.value在.Cell中复制为双精度|复制忽略逗号,vba,excel,Vba,Excel,大家好,我无法将计算并存储在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)
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
及
因此,我尝试在复制前后使用msgbox TextBox1.Value
,它会显示像1,11
,但当涉及到ws.Cells(lRow,3.Value)的,我尝试将该单元格作为111
为什么?!
我做错了什么
.Cells(lRow, 3).Value = CDbl(Replace(TextBox1.Value, ".", ","))
帮助,
也找到了解决办法
Calc.TextBox1.Value = Cdbl(...)
及
我不知道为什么必须是2次。您需要确保在文本框中输入了正确的小数分隔符
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
它独立于您的本地化。您可以输入、
或
,两者都将产生正确的十进制分隔符。是的,我知道cstr是一个字符串值,但它仍然忽略逗号。我还尝试了Calc.TextBox1.Value=Cdbl(…)是小数点分隔符吗?还是逗号?尝试用逗号替换点,然后复制到范围可能类似于.Cells(lRow,3).Value=CDbl(替换(TextBox1.Value,“.”,“,”)
使用Debug.Print Application.DecimalSeparator
查看十进制分隔符是逗号还是点。在文本框中输入的小数分隔符必须相同。.单元格(lRow,3).Value=CDbl(替换(TextBox1.Value,“.”,“,”)帮助。非常感谢。
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