objReminder.Start =范围(“h”和我)不工作
我有这个代码:
Sub StoreReminders() Dim LastRow As Long Dim i As Integer LastRow = ActiveSheet.UsedRange.Rows.Count i = 2 Debug.Print LastRow Dim appOL As Object Dim objReminder As Object Set appOL = GetObject(, "Outlook.application") Set objReminder = appOL.CreateItem(1) ' olAppointmentItem For i = 2 To LastRow Debug.Print i Debug.Print Range("h" & i) objReminder.Start = Range("h" & i) objReminder.Duration = Range("I" & i) objReminder.Subject = "Renew " & Range("a" & i) objReminder.ReminderSet = True objReminder.Save Next i End Sub
它打破了objReminder.Start = Range("h" & i)
因为根据Debug.Print
代码,它返回整个date列而不是H2中的date
Range("a" & i)
代码是否不能与objReminder.Start
一起使用? Debug.print
正确打印出来。
如果您检查Start
属性的MSDN条目然后它说:
返回或设置date,指示约会或日记条目的开始date和时间。 读/写。
(他们的重点)
所以,在你的VBA代码中,我会改变这一行:
objReminder.Start = Range("h" & i)
对此:
objReminder.Start = CDate(Range("h" & i).Value)
使用将值转换为date的CDate
函数。