宏只能在一台电脑上工作,但不能在另一台电脑上工作
公平的警告 - 代码不是我自己的,所以任何想法都会欢迎如何改变它。宏只能在一台电脑上工作,但不能在另一台电脑上工作
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
这个很有意思。在我的电脑上,它工作得很好。然而,另一个可以点击并点击,并且什么都不会发生。没有错误,没有弹出窗口,没有任何东西。所以,我知道代码有效,但是有没有什么理由(权利?)完全相同的代码可以在一个而不是另一个上工作?
首先,确保允许VBA宏运行。 VBA宏是否在Outlook中运行?你尝试调试它吗?
你是否在另一台机器上的代码中出现错误?
我建议从打破属性和方法调用链开始,并在单独的代码行中声明它们。因此,您将能够找到哪些属性或方法失败。
的代码是基于浏览器的选择的项目:
Application.ActiveExplorer.Selection.Item(1)
是选择不为空,所有的时间?
If oRequest.MessageClass = "IPM.Schedule.Meeting.Request"
该选择是否包含具有指定消息类的第一项?
一般而言,VBA宏并不是为在多台PC上分发而设计的。如果您需要在多台机器上运行解决方案,则需要开发一个加载项。见Walkthrough: Creating Your First VSTO Add-In for Outlook。
最后,您可能会发现Getting Started with VBA in Outlook 2010文章有帮助。
所以 - (对不起,这么晚回复你),我已经在我自己的工作笔记本电脑(其他人是同事的笔记本电脑)上重新创建了它,并且它自行工作正常。通过它进行了一些测试会议,并且做了它应该做的事情。仍然在为什么它能在一个而不是另一个上运行。 尝试调试它无济于事,因为没有弹出一条消息。就像我说的,在我自己的机器上没有错误。但是,我是我工作场所的IT管理员,可能拥有比她更多的权利。然而,这个宏在一个点上工作,现在不工作。不知道为什么。 – user3761389
两者前景相同的版本? 2010?或 – 0m3r
iirc,默认情况下,Outlook VBA通常处于禁用状态,请尝试进入宏设置并检查安全选项。 –
有时,如果您将** VbaProject.OTM **文件复制到其他计算机上,那台计算机需要打开VBE,然后展开模块然后退出,重新启动Outlook才能使宏工作。您可能需要添加'Debug.Print'行来帮助您查看是否没有执行任何操作。你签了宏吗? – PatricK