Я использовал процедуру, которую я обнаружил в Stack Overflow, чтобы автоматически создать элемент задачи в Outlook в папке Задачи по умолчанию. Я попытался изменить его, чтобы создать задачу в одной из двух подпапок задач «Новые FTE» и «Новые консультанты».Ошибка создания элемента задачи Outlook в подпапке папки задач
Выполнение этого кода вызывает это сообщение от обработчика ошибок.
Номер ошибки: -2147221233
Ошибка Источник: AddOlkTask
Ошибка Описание: Предпринятая операция не удалась. Не удалось найти объект.
Код проблемы отображается между «началом нового кода и» новым кодом. Я пробовал много вариантов этого кода, но я не могу взломать его (каламбур не предназначен).
Sub AddOlTask(sSubject, sBody, dtDueDate, dtReminderDate, name, program)
On Error GoTo Error_Handler
Dim noDue, pFolder, reminderSetFlag As String
reminderSetFlag = False
If program <> "Career Path Curriculum" Then
dtDue = dtDueDate
dtReminder = dtReminderDate
reminderSetFlag = True
End If
If program = "Active Consultant" Then
pFolder = "New Consultants"
Else
pFolder = "New FTEs"
End If
Const olTaskItem = 3
Dim olApp As Object
Dim OlTask As Object
Set olApp = CreateObject("Outlook.Application")
Set OlTask = olApp.CreateItem(olTaskItem)
With OlTask
.Subject = name & ": " & sSubject
.Status = 1 '0=not started, 1=in progress, 2=complete, 3=waiting,
'4=deferred
.Importance = 1 '0=low, 1=normal, 2=high
.dueDate = dtDue
.ReminderSet = reminderSetFlag
.ReminderTime = dtReminder
.Categories = "Mandatory SkillSoft Training" 'use any of the predefined Categorys or create your own
.body = sBody
.Display
.Save
End With
'start new code
Dim objNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim tsk As Outlook.TaskItem
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderTasks)
Set olFolder = olFolder.Folders(pFolder) 'error raised on this line
'end new code
Error_Handler_Exit:
On Error Resume Next
Set OlTask = Nothing
Set olApp = Nothing
Exit Sub
Error_Handler:
MsgBox "The following error has occured" & vbCrLf & vbCrLf & "Error Number: " & _
Err.Number & vbCrLf & "Error Source: AddOlkTask" & vbCrLf & "Error Description: " & _
Err.Description, vbCritical, "An Error has Occurred!"
Resume Error_Handler_Exit
End Sub
«Объект не найден». Папка New Consultants или New FTEs сначала должна быть создана непосредственно в папке Задачи по умолчанию. – niton
Пожалуйста, отпустите 'On Error GoTo Error_Handler'. Это затрудняет понимание того, какая строка дает ошибку во время разработки. –
Спасибо за ваш комментарий Niton. Папки существуют. Я вручную создал их в разделе «Задачи». – crustybread