2014-11-04 78 views
0

我正在尝试创建一个为特定(共享)日历创建三个Outlook约会的宏。这些活动将始终是全天活动。最后,我希望能够将宏与一个按钮相关联,以便当按钮被按下时,当前行的日期被添加到日历中。所有三个日期将在电子表格的同一行中。从Excel电子表格中创建Outlook约会到特定日历

这是我到目前为止(我知道它不是很多),请让我知道我需要补充什么。我对VBA仍然很陌生。下面的代码成功创建约会,但由于某种原因,for循环无法正常工作。唯一创建的事件是最后一个日期。

Sub Makeapt() 
    Set myOutlook = CreateObject("Outlook.Application") 

    Set myApt = myOutlook.createitem(1) 
Dim i As Integer  
For i = 3 To 5 
    myApt.Subject = Cells(ActiveCell.Row, 1).Value 
    myApt.Start = Cells(ActiveCell.Row, i).Value 
    myApt.Save 
Next i 

End Sub 

没关系,我解决了这个问题。 Appt仍然会使用默认日历,但实际上它更可取。

Sub Makeapt() 

Dim warning 
warning = MsgBox("You are about to create Outlook appointments for subject #" & Cells(ActiveCell.Row, 3) & ". Is that right?", vbOKCancel) 
If warning = vbCancel Then Exit Sub 

Set myOutlook = CreateObject("Outlook.Application") 
Set ID = Cells(ActiveCell.Row, 3) 
Dim i As Integer 

For i = 7 To 9 
    Set myApt = myOutlook.createitem(1) 
    myApt.Subject = "Subject #" & ID 
    myApt.Start = Cells(ActiveCell.Row, i).Value 
    myApt.Save 
Next i 

末次

回答

0

如果你想有一个共享的日历,用Application.CreateRecipient创建收件人对象,使用Application.Session.GetSharedDefaultFolder打开共享日历,创建使用MAPIFolder.Items.Add预约。