【问题标题】:Excel Vba Macro Insert Decimal NumberExcel Vba 宏插入十进制数
【发布时间】:2015-07-29 13:57:08
【问题描述】:
在我的 excel 工作表中,如果我尝试在单元格中插入像 3.4 这样的十进制数字,则会出现的数字是 3.4。
但是如果我尝试通过 vba 宏插入相同的数字,出现的数字是 3,4。
这是我的代码。
Sub insertData()
Dim valore as String
valore = "3.4"
Cells(1, 1) = valore
End Sub
如何解决这个问题?
谢谢
【问题讨论】:
标签:
excel
vba
numbers
decimal
comma
【解决方案1】:
您的工作表上必须有一些格式,因为它在这里工作正常,但您可以使用下面的强制数字格式。如需更多小数位,只需将它们添加到格式中,例如"0.000" 表示 3 位小数
Sub insertData()
Dim valore As String
valore = "3.4"
With Cells(1, 1)
.Value = valore
.NumberFormat = "0.0"
End With
End Sub
下面用 cdbl 将字符串转换为双精度,也应保留小数。
Sub insertData()
Dim valore As String
valore = "3.4"
With Cells(1, 1)
.Value = cdbl(valore)
.NumberFormat = "0.0"
End With
End Sub
【解决方案2】:
我在您的代码中没有发现任何错误。也许工作表的格式与原始来源不同。在这种情况下,我更喜欢复制并粘贴到 Note Tab Light 文本编辑器,然后将数据重新粘贴到新的 Excel 工作表中。
【解决方案3】:
请看这个例子。
它将澄清我的问题。
此代码输出正确。
Sub Macro1()
Dim row As Integer
Dim value As String
row = 1
For i = 1 To 3
For j = 1 To 3
For k = 1 To 3
value = i & "." & j & "." & k
Cells(row, 1) = value
row = row + 1
Next k
Next j
Next i
End Sub
此代码输出错误,因为点被转换为逗号。
Sub Macro2()
Dim row As Integer
Dim value As String
row = 1
For i = 1 To 3
For j = 1 To 3
value = i & "." & j
Cells(row, 1) = value
row = row + 1
Next j
Next i
End Sub