О чем ты говоришь?
О:
- "Формула Excel" или
- "EXCEL VBA"
?
О:
- «Сравнение диапазона дат» или
- «чтобы сделать мою дату»
?
Предположим, что VBA - это ...
Тип Date
в VBA - это Double
, где:
- Целочисленная часть как количество дней от ... (смотритеF1) и
- дробная часть дня.
Итак, желаемое "04 / ИЮНЬ> 04 / ИЮНЬ 23:59" будет:
? DateSerial(2018, 06, 4) + ((23& * 60& * 60&) + (59& * 60&)) / 86400&
18-06-04 23:59:00
Да, конечно, вы можете использовать TimeSerial
вместо вышеуказанного, но ... это не дало вам правильного понимания дат VBA.
.
----------
ADD:
Извините, но этот код будет работать только для одной ячейки, потому что у меня много ячеек с датами и мне нужен VBAчтобы извлечь их и преобразовать в 23:59, например, я запускаю цикл for, чтобы изменить, как 20 ячеек подряд с несколькими диапазонами.И я буду запускать макрос несколько раз в день, будет ли он каждый раз добавлять 23 часа к этой дате и заставлять его менять даты?
Public Sub sp_Test_Date()
Dim rSel As Range
Dim i&
Const H23M59 As Double = 1 - 60 / 86400
Set rSel = Selection
With rSel
For i = 1 To .Cells.Count
With .Cells(i)
If IsDate(.Value) Then
.Offset(0, 1).Value = CDate(Int(.Value) + H23M59)
End If
End With ' .Cells(i)
Next
End With ' rSel
End Sub