У меня есть лист Excel, в котором есть список имен контактов, названий компаний и адресов электронной почты. То, что я хочу сделать, это импортировать их в Outlook через VBA. Я уже сделал код для удаления текущих записей в папке контактов с помощью VBA из excel, но при добавлении нового контакта я получаю ошибку 438 Runtime. Ниже приведен код, который я запускаю, чтобы добавить контакт, а ниже - мой рабочий код удаления.Невозможно создать контакт в Outlook с помощью VBA от excel
Sub addnewcontacts()
Dim runoutlook As Outlook.Application
Set runoutlook = CreateObject("Outlook.Application")
Set findnamespace = runoutlook.GetNamespace("MAPI")
Set activefolder = findnamespace.Folders
n = 1
Do Until activefolder.Item(n) = "[email protected]"
n = n + 1
Loop
Set myfolder = activefolder.Item(n)
Set myfolder2 = myfolder.Folders("Contacts").Folders("CustGBP")
lastrow = Sheets("Data").Range("A" & Sheets("Data").Rows.Count).End(xlUp).Row
For i = 1 To lastrow
Sheets("Sage Data").Activate
If ActiveSheet.Range("C" & i).Value = "" Then
Set olitem = myfolder2.CreateItem(olContactItem) //IT BREAKS AT THIS LINE
With olitem
.FullName = Trim(Range("A" & i).Value)
.Company = Trim(Range("B" & i).Value)
.Email1Address = Range("G" & i).Value
End With
olitem.Save
End If
Next i
End Sub
и рабочий код удаления:
Sub outlookdelete()
Dim runoutlook As Outlook.Application
Set runoutlook = CreateObject("Outlook.Application")
Set findnamespace = runoutlook.GetNamespace("MAPI")
Set activefolder = findnamespace.Folders
n = 1
Do Until activefolder.Item(n) = "[email protected]"
n = n + 1
Loop
Set myfolder = activefolder.Item(n)
Set myfolder2 = myfolder.Folders("Contacts").Folders("CustGBP")
Do
For Each ContactItem In myfolder2.Items
ContactItem.Delete
Next ContactItem
Loop Until myfolder2.Items.Count = 0 //this is in as otherwise it would only delete a handful each time it ran for some reason
End Sub
Любые идеи? Сделал бы мою работу намного проще, вместо того, чтобы каждый раз делать индивидуальный импорт!
Приветствия
Ben
В итоге я использовал несколько иной метод, но это тоже сработало бы хорошо. Другой вопрос, который есть у меня на некоторых машинах, в Outlook, путь к папке начинается с «User - ...» вместо «[email protected]». Есть ли у меня способы обойти это? – bmgh1985
Добавил мой код внизу. Изменен способ добавления контакта в мою версию, и он отлично работает – bmgh1985