excel 您同步的文件夹中的一个或多个项目不匹配,若要解决冲突,请打开这些项目,然后重试此操作

zy1mlcev  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(709)

为什么我会收到这个错误消息?不久前它还工作正常,当我运行代码时,它给我错误消息:同步文件夹中得一个或多个项目不匹配.要解决冲突,请打开项目,然后重试此操作.

'create sub
Sub Export_TaskItems()
Dim NS As NameSpace
Dim TaskFolder As Folder
Dim Item As Object
Dim TaskItem As TaskItem

Dim xlApp As Excel.Application
Dim xlwb As Excel.Workbook
Dim xlws As Excel.Worksheet
Dim iRow As Long

Set xlApp = CreateObject("Excel.Application")
Set xlwb = xlApp.Workbooks.Add
Set xlws = xlwb.Worksheets(1)

Set NS = Session
Set TaskFolder = NS.GetDefaultFolder(olFolderToDo)

'this line request the excel table range and add an array of values
xlws.Range("A1").Resize(1, 6).Value = Array("Status", "Start Date", "Due Date", "Task Name", "Importance", "Category")
'the iRow being assigned to row number two which is the row we will insert the information
iRow = 2

'for loop to handle the information/date
For Each Item In TaskFolder.Items
    If Item.Class = olTask Then
    
        Set TaskItem = Item
        
        xlws.Cells(iRow, 1).Value = Convert_Status(TaskItem.Status)
        xlws.Cells(iRow, 2).Value = TaskItem.StartDate
        xlws.Cells(iRow, 3).Value = TaskItem.DueDate
        xlws.Cells(iRow, 4).Value = TaskItem.Subject
        xlws.Cells(iRow, 5).Value = Convert_Importance(TaskItem.Importance)
        xlws.Cells(iRow, 6).Value = TaskItem.Categories
        
        iRow = iRow + 1
    End If
    
Next Item

xlApp.Visible = True

Set xlApp = Nothing

End Sub

Public Function Convert_Status(ByVal Status_Value As Integer) As String

On Error Resume Next
Convert_Status = Array("Not Started", "In Progress", "Complete", "Waiting", "Deferred")(Status_Value)

End Function

Public Function Convert_Importance(ByVal Importance_Value As Integer) As String

On Error Resume Next
Convert_Importance = Array("Low", "Normal", "High")(Importance_Value)

End Function
fnx2tebb

fnx2tebb1#

你的代码很好。我没有注意到代码中有什么奇怪的地方。但是,将您的变更带到服务器,我建议您将变更与服务器端同步行程。您可以使用SyncObjects对象,它包含一组SyncObject对象,代表使用者的传送/接收群组。若开始使用指定的传送\接收组可以使用SyncObject.Start方法:

Public Sub Sync() 
 Dim nsp As Outlook.NameSpace 
 Dim sycs As Outlook.SyncObjects 
 Dim syc As Outlook.SyncObject 
 Dim i As Integer 
 Dim strPrompt As Integer 
 Set nsp = Application.GetNamespace("MAPI") 
 Set sycs = nsp.SyncObjects 
 For i = 1 To sycs.Count 
   Set syc = sycs.Item(i) 
   strPrompt = MsgBox("Do you wish to synchronize " & syc.Name &"?", vbYesNo) 
   If strPrompt = vbYes Then 
     syc.Start 
   End If 
 Next 
End Sub

相关问题