¿Cómo guardo una nueva cita de Outlook en la misma carpeta que otra cita, para la cual tengo el EntryID? La carpeta debe ser la misma en la que se guarda la cita "currentitem". Creo que debería usar la función "item.move" para configurar la carpeta, pero no puedo hacer que funcione.

EntryID = Cells(ActiveCell.Row, 23)
Set myolApp = CreateObject("Outlook.Application")
Set NS = myolApp.GetNamespace("MAPI")
NS.Logon
Set CurrentItem = NS.GetItemFromID(EntryID)
Dim MyAppt As Outlook.AppointmentItem
Set MyAppt = Outlook.Application.CreateItem(olAppointmentItem)
With MyAppt
    .Move (NS.Folders(CurrentItem)) 'THIS IS WHERE I AM STUCK
    .Start = CurrentItem.Start
    .End = CurrentItem.End
    .AllDayEvent = False
    .Display
End With
0
John John 31 dic. 2019 a las 14:35

2 respuestas

La mejor respuesta

En primer lugar, cree el elemento en la carpeta de destino para comenzar usando MAPIFolder.Items.Add en lugar de CreateItem / Move.
Si necesita averiguar la carpeta principal de otro elemento, envíe la propiedad MailItem.Parent a MAPIFolder.

En segundo lugar (no importará si usa MAPIFolder.Items.Add) - Move es una función que devuelve el elemento recién creado, y el elemento original a partir de ese momento no debe tocarse. Su código ignora el nuevo elemento y sigue configurando las propiedades del elemento antiguo (movido).

1
Dmitry Streblechenko 1 ene. 2020 a las 04:33

CurrentItem ya está configurado como la carpeta a la que está moviendo la carpeta. Si fuera la cadena de identificación, no la carpeta, su código sería correcto. Sin embargo, debido a que es la carpeta, solo necesita .Move CurrentItem.

0
Baum mit Augen 31 dic. 2019 a las 14:57