我在单元格中有一个日期和时间值,我想将秒数设为00,我该怎么做?

时间:2016-06-15 14:06:42

标签: excel excel-vba vba

例如,我有一个单元格值 A1 = 17/06/2016 19:00:46 我想把它改成17/06/2016 19:00:00 所以基本上秒必须是0但我似乎无法通过格式化实现。我的格式为dd / mm / yyyy hh:mm,但秒仍然保留。 我将使用这些值来匹配使用vba中的Application.Match在不同工作表中的值。不同的工作表将秒数设为0,因此,要匹配它,我需要将这些转换为0秒。 谢谢。

3 个答案:

答案 0 :(得分:2)

实现这一目标的更简单方法:

Function DateWithZeroSeconds(MyDate As Date)
DateWithZeroSeconds = Format(MyDate, "dd/mm/yyyy h:m") & ":00"
End Function

答案 1 :(得分:0)

选择要转换的单元格并运行此短宏:

Sub SecondKiller()
    Dim d As Date, d2 As Date
    For Each r In Selection
        d = r.Value
        r.Value = DateSerial(Year(d), Month(d), Day(d)) + TimeSerial(Hour(d), Minute(d), 0)
    Next r
End Sub

答案 2 :(得分:0)

另一种方法是格式化Excel单元格,然后将秒数显示为00:

Sub FormatRange_AsDate(ByVal Rg As Range)
With Rg
    .NumberFormat = "d/m/yyyy h:mm:ss;@" 'give the format to the cell , showing seconds
    .Value = Format(.Value, "d/m/yyyy h:m") & ":00" 'changing the seconds to "00", don't use .value2
End With
End Sub