Я пытаюсь отсортировать свои задачи по определенному пользователем полю, которое я называю "Seq".Когда я делаю это с VBA, кажется, ничего не делает.Однако это прекрасно работает при сортировке по умолчанию полей, таких как DueDate.у кого-нибудь есть решение?Я включаю мой код и результаты.Я использую Outlook 2010. Заранее спасибо!
Вот код:
Sub TestSort()
Dim ToDoFolder As Folder
Dim Task As TaskItem
Dim Sel As Outlook.Items
Dim InitStartTime As Date
Dim RemindTime As Date
Dim FilterString As String
'FORCE CHANGE CURRENT FOLDER TO BE "TO DO LIST" AND VIEW TO BE "Debug (Filter:TEST)"
Set ToDoFolder = Session.GetDefaultFolder(olFolderToDo)
Set Application.ActiveExplorer.CurrentFolder = ToDoFolder
ToDoFolder.Views.Item("Debug (Filter:TEST)").Apply
'AUTOMATICALLY SELECT TASK ITEMS TO BE WORKED WITH
FilterString = "@SQL=" & ToDoFolder.Views.Item("Debug (Filter:TEST)").Filter
Set Sel = ToDoFolder.Items.Restrict(FilterString)
'SHOW ORIGINAL SORTING
Debug.Print Chr(13); "Sort by Original"
Call CheckSort(Task, Sel)
'SORT TASKS IN MY SELECTION (AND CHECK SORT)
Sel.Sort "[Seq]", False
Debug.Print Chr(13); "Sort by Seq Ascending"
Call CheckSort(Task, Sel)
Sel.Sort "[Seq]", True
Debug.Print Chr(13); "Sort by Seq Descending"
Call CheckSort(Task, Sel)
Sel.Sort "[DueDate]", False
Debug.Print Chr(13); "Sort by DueDate Ascending"
Call CheckSort(Task, Sel)
Sel.Sort "[DueDate]", True
Debug.Print Chr(13); "Sort by DueDate Descending"
Call CheckSort(Task, Sel)
End Sub
Sub CheckSort(Task As Outlook.TaskItem, Sel As Outlook.Items)
'CHECK THAT IT WAS SORTED CORRECTLY
Debug.Print Chr(13);
For Each Task In Sel
Seq = Task.UserProperties.Find("Seq").Value
Debug.Print Seq & " " & Task.Subject & " " & Task.DueDate
Next Task
End Sub
Вот результаты:
Sort by Original
2 Test 1 6/6/2018
4 Test 2 6/8/2018
1 Test 3 6/10/2018
3 Test 4 6/9/2018
Sort by Seq Ascending
2 Test 1 6/6/2018
4 Test 2 6/8/2018
1 Test 3 6/10/2018
3 Test 4 6/9/2018
Sort by Seq Descending
2 Test 1 6/6/2018
4 Test 2 6/8/2018
1 Test 3 6/10/2018
3 Test 4 6/9/2018
Sort by DueDate Ascending
2 Test 1 6/6/2018
4 Test 2 6/8/2018
3 Test 4 6/9/2018
1 Test 3 6/10/2018
Sort by DueDate Descending
1 Test 3 6/10/2018
3 Test 4 6/9/2018
4 Test 2 6/8/2018
2 Test 1 6/6/2018