大家好,我无法将计算出的值并存储在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
为什么?! 我在做什么错
答案 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次。