【问题标题】: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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-04
          • 1970-01-01
          • 2013-12-18
          • 1970-01-01
          • 1970-01-01
          • 2015-01-20
          相关资源
          最近更新 更多