如何在24小时内为我已经创建的宏添加时间?这是下面的宏。我需要为它添加时间戳,我不确定如何。
Private Sub Workbook_Open()
Dim dtDate As Date
dtDate = InputBox("Date", , Date)
Set SelRange = Range("B:B")
For Each b In SelRange.Rows
b.Value = dtDate
b.Offset(0, 1).Value = dtDate + 1
Next
End Sub
我需要时间以24小时为基础增加此工作表的宏。我有一个我需要做的例子。在这个例子中,日期和时间显示我需要在24小时内增加的时间。
答案 0 :(得分:1)
首先,我建议始终使用Option Explicit。这可以通过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)来实现,当它到达底部时,循环将停止。
它现在会自动填充C列,日期时间为24小时,如果您只希望将来的日期跳过C列的行中的Timeserial部分。如果您希望将来1小时,请将行更改为:
b.Offset(0, 1).Value2 = dtDate + TimeSerial(intHours +1, 0, 0)