首先,我建議始終使用顯式的選項。這可以通過您的MS VB窗口中的菜單啓用未來的項目:工具>選項>編輯器(選項卡)>需要變量聲明(複選框)
現在到企業:如果你想要一個範圍(B2:B25和C2 :C25在這個例子中)來填充日期+時間,我建議使用類似以下幾點1周小時爲單位:
Option Explicit
Private Sub Workbook_Open()
Dim SelRange As Range
Dim b As Range
Dim dtDate As Date
Dim intHours As Long
'Enter the starting date and time
dtDate = InputBox("Start date", , Date)
'Initate our hours counter
intHours = 0
'Assign a worksheet range for our date-time range
Set SelRange = Range("B2:B25")
'Write the date-time range with 1 hour increments
For Each b In SelRange
b.Value2 = dtDate + TimeSerial(intHours, 0, 0)
'24 hours later in the cell to the right of this
b.Offset(0, 1).Value2 = dtDate + 1 + TimeSerial(intHours, 0, 0)
intHours = intHours + 1
'To avoid an overflow in the TimeSerial function the intHours are keps smaller than then Integer maximum
If intHours > 24 Then
intHours = intHours - 24
dtDate = dtDate + 1
End If
Next
End Sub
至於你提到你開始約會,所以我開始日期(無時間)在InputBox中。
現在,如果您只想在有限的時間內重複這個操作,您可以通過限制它適用的範圍來實現此操作(此例中爲B2:B25),當到達底部時,循環將停止。
它現在會自動填充日期時間爲24小時的C列,如果您希望將來有日期,請跳過C列的行中的Timeserial部分。如果你想這是1個小時以後再行更改爲:
b.Offset(0, 1).Value2 = dtDate + TimeSerial(intHours +1, 0, 0)
'我需要添加一個時間戳it' - 什麼?工作表中的單元格?你想要宏觀時間嗎? –
@ scott到工作表中的單元格。謝謝。 – TankTank