vba - .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
为什么?!我究竟做错了什么
解决方案
您需要确保在 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 .
,两者都会产生正确的小数分隔符。
推荐阅读
- python - 根据现有列的值向熊猫数据框添加新列
- asp.net-core - .net core 3.1发布后,web.config中总是出现hostingModel="inprocess",导致无法正常浏览
- c# - 性能测试:当 UI/API 测试的运行时间增加 x% 时标记(Selenium C#)
- vectorization - Octave:两个向量的笛卡尔积的向量化实现
- javascript - 如何在 Fabric.Js 中创建一条直线
- python - Schoology API 理解
- javascript - 您如何从服务器中选择随机成员 ID?不和谐.js
- javascript - 为什么我的异步函数返回 Uncaught TypeError: (intermediate value) is not iterable
- wordpress - 离子和 wordpress 与子域的集成
- shopify - 如何将收藏畅销相关产品添加到 Shopify 购物车页面