Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba TextBox.value在.Cell中复制为双精度|复制忽略逗号_Vba_Excel - Fatal编程技术网

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