2012-08-02 62 views
0

我無法獲得VBA代碼來比較以下日期和時間:我嘗試過TimeValue()並嘗試使用excels分數來表示時間,並且我嘗試了小時分鐘函數以及這些組合的組合

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 

的問題是,如果我比較當前日期和時間值與下一個日期和時間值練成有時認爲數據和時間是不一樣的,即使答案在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 

末次

+0

date + min3改變它,我很抱歉,如果這似乎是一個愚蠢的問題,但我似乎無法得到它的權利。謝謝您的幫助。 – Albert 2012-08-06 09:12:18

回答

0

你應該使用dateadd函數處理日期。

因此,無論你有DateAdd("n", 3, date)

+0

嗨,謝謝,我會試試這個並回復你。 – Albert 2012-08-03 14:38:33

+0

我發現了別的東西,如果最後一個分鐘數是4或9,那麼它總是會出錯。 – Albert 2012-08-06 08:57:17