Outlook VBA创建任务后无法修改:提示被其他用户/窗口修改
问题解决:Outlook任务创建后无法修改的问题
问题根源
Move方法执行后,原oTask对象指向的是已失效的旧任务实例(原位置已不存在该任务),后续调用.Save和.Display操作的是这个无效对象。真正的任务已经在目标文件夹中,但你打开的是旧实例,导致编辑时出现「该项目无法保存,因为它已被其他用户或其他窗口修改」的冲突提示。
解决方法
接收Move方法返回的新任务对象,后续所有操作都基于这个新对象,而非原来的oTask。
修改后的代码
Private Sub CreateTaskCMD_Click() Dim oTask As TaskItem Dim SelFolder As Outlook.Folder Dim movedTask As TaskItem ' 新增变量接收移动后的有效任务 Set oTask = Outlook.CreateItem(olTaskItem) Set SelFolder = ObjNS.Folders(1).Folders(TaskFoldersList.List(TaskFoldersList.ListIndex, 1)) With oTask .StartDate = Date .Save ' 先保存到默认任务文件夹 End With ' 接收Move返回的新任务对象(指向目标文件夹中的任务) Set movedTask = oTask.Move(SelFolder) ' 直接操作移动后的有效任务 With movedTask .Display ' 打开目标文件夹中的真实任务实例 End With ' 释放所有对象 Set SelFolder = Nothing Set oTask = Nothing Set movedTask = Nothing End Sub
补充说明
- 无需在
Move后再次调用Save,Move操作已自动将任务保存到目标文件夹。 - 对
movedTask调用.Display,打开的是目标文件夹中真实存在的任务实例,此时编辑、重命名都不会触发冲突提示。
内容的提问来源于stack exchange,提问作者VBAbyMBA
相关产品推荐
相关产品推荐

