Excel删除十进制数

时间:2018-02-03 15:04:57

标签: mysql excel

我正在使用excel来分析数据库中的一些数据。我从MySQL数据库通过ODBC驱动程序获取数据。有一些Cols有时间值。到目前为止没问题。我的格式是:

hh:mm:ss,000

应用格式是没有问题的,我用一个宏来刷新单元格,该宏从excel应用“text to column”函数(相同的效果是标记整个col并按Enter键,它重新进入值并应用格式)。现在我的问题 - 如果我第二次点击此功能或只是点击手动输入,它会删除小数位,看看:

在:

enter image description here

后:

enter image description here

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

使用美国语言环境的假设(小数点 是小数分隔符。)

假设我们有一列 Text 值,例如:

enter image description here

以下宏会将它们转换为格式“hh:mm:ss.000”

的真实Excel时间

在美国语言环境中,此格式“hh:mm:ss,000”不合法:

Sub fixData()
    Dim r As Range, s As String
    Dim hrs As Long, mins As Long, secs As Long
    Dim milli As Long, d As Double

    Selection.NumberFormat = "hh:mm:ss.000"

    For Each r In Selection
        s = r.Text
        milli = CLng(Right(s, 3))
        hrs = CLng(Left(s, 2))
        mins = CLng(Mid(s, 4, 2))
        secs = CLng(Mid(s, 7, 2))
        d = hrs / (24#) + mins / (24# * 60) + secs / (24# * 60 * 60) + milli / (24# * 60 * 60 * 1000)
        r.Value = d
    Next r
End Sub

然后:

enter image description here

请注意,处理后,公式栏会显示毫秒,尽管它在那里。