公平警告 - 代码不是我自己的,所以任何想法都会受到欢迎,如何改变它。
Public Sub ChangeMeeting()
Dim oRequest As MeetingItem
Dim oAppt As AppointmentItem
Set oRequest = Application.ActiveExplorer.Selection.Item(1)
If oRequest.MessageClass = "IPM.Schedule.Meeting.Request" Then
Set oAppt = oRequest.GetAssociatedAppointment(True)
' use this to autoaccept
Dim oResponse
Set oResponse = oAppt.Respond(olMeetingAccepted, True)
oResponse.Send
' set fields on the appt.
With oAppt
' .Categories = "Slipstick"
.BusyStatus = olFree
.Save ' use .Display if you want to see the appt. and set the reminder yourself
End With
End If
'delete the request from the inbox
oRequest.Delete
End Sub
这个很有意思。在我的电脑上,它工作得很好。但是,另一方面,它可以点击并点击,什么都不会发生。没有错误,没有弹出窗口,没有任何东西。所以,我知道代码是有效的,但有没有任何理由(权利?)完全相同的代码可以在一个而不是另一个上工作?
答案 0 :(得分:0)
首先,确保允许运行VBA宏。 VBA宏是否在Outlook中运行?你试过调试吗?
您是否在其他计算机上的代码中出现任何错误?
我建议从破坏属性和方法调用链开始,然后在不同的代码行上声明它们。因此,您将能够找到失败的属性或方法。
代码基于资源管理器中的所选项目:
If oRequest.MessageClass = "IPM.Schedule.Meeting.Request"
选择是不是一直都是空的?
<!DOCTYPE html>
<html>
<head>
<title><?php echo $viewModel->get('pageTitle'); ?></title>
</head>
<body>
<?php require($this->viewFile); //index.php ?>
</body>
</html>
选择是否包含具有指定消息类的第一个项目?
通常,VBA宏不适用于在多台PC上分发。如果您需要在多台计算机上运行解决方案,则需要开发一个加载项。请参阅Walkthrough: Creating Your First VSTO Add-In for Outlook。
最后,您可能会发现Getting Started with VBA in Outlook 2010文章很有帮助。