2016-06-15 2 views
0

У меня есть значение ячейки, например A1 = 17/06/2016 19:00:46 Я хочу изменить его на 17/06/2016 19:00:00 , так что в основном секунды должны быть 0, но Кажется, я не могу добиться этого с помощью форматирования. Я сделал формат как dd/mm/yyyy hh: mm, но секунды все еще сохраняются. Я буду использовать эти значения для соответствия значениям на другом листе, используя Application.Match в vba. у другого листа есть секунды как 0, следовательно, чтобы соответствовать, мне нужно преобразовать их в 0 секунд. Спасибо.У меня есть дата и время в ячейке, и я хочу сделать секунды как 00, как мне это сделать?

+0

Формат предназначен только для отображения. он не изменяет значение, хранящееся в поле, оно только изменяет то, что вы видите на экране. вам необходимо изменить базовое значение. –

+0

Как я могу сделать это до значения? возможно, вокруг секунд вверх или вниз? Без понятия. Спасибо за помощь. – Vigmo10

ответ

2

Более простой путь для достижения этой цели:

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

Большое спасибо абсолютного гения. – Vigmo10

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 
+0

Спасибо за ваше решение. он работает, но я нашел решение sgdva более простым в использовании совпадения. – Vigmo10

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 
Смежные вопросы

 Смежные вопросы