我无法获取 VBA 代码来比较以下日期和时间:
2012/05/01 00:00:00
2012/05/01 00:03:00
2012/05/01 00:06:00
2012/05/01 00:15:00
2012/05/01 00:18:00
在下面给我答案
2012/05/01 00:00:00
2012/05/01 00:03:00
2012/05/01 00:06:00
2012/05/01 00:09:00
2012/05/01 00:12:00
2012/05/01 00:15:00
2012/05/01 00:18:00
问题是,如果我将当前日期和时间值与下一个日期和时间值进行比较,excel 有时会认为数据和时间不一样,即使在 VBA 中观察值是相同的。我必须在每个时间戳之间间隔 3 分钟的整个月进行此检查。这些时间戳旁边有数据条目。我只能创建从 2012/05/01 00:00:00 开始到月底结束的时间戳,但我需要它来填写数据集中缺失的条目。下面的代码有效,但仅在上面提到的某些时候有效。我尝试了一些不同的东西,但似乎没有任何效果。
感谢您的任何帮助
Sub Insert_missing_3min()
'在缺少的日期和时间戳所在的日期和时间插入一行,在添加的日期旁边插入一个零。
Dim min3 As Date
Dim CurTime As Date
Dim CurCell As Date
Dim NextCell As Date
min3 = 3 / 24 / 60
If (Hour(ActiveCell) <> 0 Or Minute(ActiveCell) <> 0 Or Day(ActiveCell) <> 1) Then 'makes the start date the fisrt of the month at 00:00
ActiveCell.EntireRow.Insert
ActiveCell.Value = Year(ActiveCell.Offset(1, 0)) & "/" & Month(ActiveCell.Offset(1, 0)) & "/" & "1"
End If
Maand = Month(ActiveCell)
Do While IsDate(ActiveCell) And Month(ActiveCell) = Maand
NextCell = DateAdd("n", TimeValue(ActiveCell.Offset(1, 0)), ActiveCell.Offset(1, 0))
If (NextCell <> DateAdd("n", 3, ActiveCell) And NextCell > DateAdd("n", 3, ActiveCell)) Then
ActiveCell.Offset(1).EntireRow.Insert
ActiveCell.Offset(1, 0).Activate
ActiveCell.Value = DateAdd("n", 3, ActiveCell.Offset(-1, 0)) '3 min time value in excell
ActiveCell.Offset(0, 1).Value = 0 ' Value in colum next to date 0
With Selection.Interior ' Highlight
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Else
ActiveCell.Offset(1, 0).Activate
End If
Loop
结束子