使用VBA从Excel数据创建Outlook约会

3

标题已经说明了一切。我昨天写的代码运行得很好。但是,我犯了一个错误并且保存不正确导致代码丢失了。然而,今天我重新编写了代码,但是预约没有被创建。当我通过我的子程序F8逐步执行时,值被正确地存储。如果有人能指出我可能忽略的愚蠢错误,那将是一个救命稻草,因为我自己找不到它。

Sub test()

    Dim OL As Outlook.Application, Appoint As Outlook.AppointmentItem, ES As Worksheet, _
    r As Long, i As Long, WB As ThisWorkbook

    Set WB = ThisWorkbook
    Set ES = WB.Sheets("Export Sheet")
    r = ES.Cells(Rows.count, 1).End(xlUp).Row
    Set OL = New Outlook.Application

    For i = 2 To r
        Set Appoint = OL.CreateItem(olAppointmentItem)
        With Appoint
            .Subject = ES.Cells(i, 1).Value
            .Start = ES.Cells(i, 2).Value
            .End = ES.Cells(i, 3).Value
            .Location = ES.Cells(i, 4).Value
            .AllDayEvent = ES.Cells(i, 5).Value
            .Categories = ES.Cells(i, 6).Value & " Category"
        End With
    Next i
    Set OL = Nothing

End Sub

3
什么出了问题?有错误信息吗? - user2261597
@peakpeak 没有错误信息。代码按预期运行,但在运行宏后Outlook中没有新的约会。 - JustinShotMe
假设您已经在这里检查并与自己的内容进行了比较?链接 - 您可以随时复制微软的示例并将其修改为您的工作簿。 - Petrichor
1个回答

3
这是一个可行的示例,在这里可以找到。
看起来你的循环末尾缺少了.Save
像这样:
For i = 2 To r
    Set Appoint = OL.CreateItem(olAppointmentItem)
    With Appoint
        .Subject = ES.Cells(i, 1).Value
        .Start = ES.Cells(i, 2).Value
        .End = ES.Cells(i, 3).Value
        .Location = ES.Cells(i, 4).Value
        .AllDayEvent = ES.Cells(i, 5).Value
        .Categories = ES.Cells(i, 6).Value & " Category"
        .Save
    End With
Next i

如果我的回答对您有帮助,请将其标记为答案 :) 谢谢! - Petrichor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接