2017-03-12 56 views
0

我编写了以下代码以从Outlook日历的子文件夹中删除所有约会。我一直在努力寻找在代码中调用这个子文件夹的正确方法,现在我难倒了。它现在似乎可以调用正确的文件夹,但无法继续删除约会。在尝试将其引导至子文件夹之前,我在默认日历上成功测试了此代码。运行时错误438:从Excel中删除Outlook约会

我已经注释掉下面的代码行,我正在接收运行时错误438:“对象不支持此属性或方法”。

我希望任何人能够让我知道我需要改变以解决此问题。

Public Sub DeleteAppt() 

Dim olApp As Object 'Outlook.Application 
Dim olNS As Object 'Outlook.Namespace 
Dim olAptItemFolder As Object 'Outlook.Folder 
Dim olAptItem As Object 'Outlook.AppointmentItem 
Dim i As Long 

    Set olApp = CreateObject("Outlook.Application") 
    Set olNS = olApp.Session 
    Set olAptItemFolder = olNS.GetDefaultFolder(olFolderCalendar).Folders("TestCal").Items 

    ''''For i = olAptItemFolder.Items.Count To 1 Step -1 
     Set olAptItem = olAptItemFolder.Items(i) 
     If olAptItem.Subject Like "***" Then 
      olAptItem.Delete 
     End If 
    Next i 

    Set olAptItem = Nothing 
    Set olAptItemFolder = Nothing 
    Set olApp = Nothing 

End Sub 
+0

你混合起来的文件夹,该文件夹中的项目就行了。更改设置olAptItemFolder = olNS.GetDefaultFolder(olFolderCalendar).Folders(“TestCal”)。要设置的项目olAptItemFolder = olNS.GetDefaultFolder(olFolderCalendar).Folders(“TestCal”) – niton

+0

如果这是答案,您可以减轻关闭的负担通过删除问题来投票排队。 – niton

+0

进行建议的更改并未解决错误。 – elpizzic

回答

-1

变化

For i = olAptItemFolder.Items.Count To 1 Step - 1 

For i = olAptItemFolder.Count To 1 Step - 1 
+0

这已解决了运行时错误438,但现在同一行返回运行时错误462:远程服务器计算机不存在或不可用。我需要问这是一个新问题吗? – elpizzic

+0

是的,请提出一个新问题并指出您的代码的哪一行引发该异常。 –

相关问题