Outlook VBA CreateObject在Application_Startup()期间失败

时间:2018-11-09 19:06:44

标签: outlook startup createobject

我在Outlook中编写了一个宏,该宏打开一个Excel文件,然后在Excel电子表格中运行另一个宏。然后,Excel宏会将某些图表另存为PDF文件,并打开Outlook以将其作为附件通过电子邮件发送。

在Outlook已打开的情况下运行此宏时,它可以正常工作。但是,如果我在启动时分配了要在Application_Startup事件中执行的宏,则会在Excel宏中收到错误消息,提示ActiveX无法创建所需的对象。它出现在此代码的第一行:

wide_df2 <- ts(wide_df2)


         2008      2009       2010       2011       2012
1  0.14969736 0.5066096 0.48370177 0.34055395 0.33362678
2  0.02449981 0.1121208 0.09009446 0.00000000 0.04152243
3  0.05505377 0.1729551 0.16392943 0.05766417 0.09065643
4  0.02745081 0.1619292 0.14255551 0.06254547 0.07133078
5  0.21398425 0.3881638 0.16413972 0.07705295 0.09385402
6  0.07834220 0.2272065 0.35237013 0.25850410 0.32115553
7  0.03102533 0.1458028 0.23590461 0.09950566 0.18447961
8  0.05418163 0.1716062 0.11510734 0.07411656 0.10856172

我把这两个变量都设为对象。抱歉,这个问题是新手的问题,但是经过几个小时的搜索,我还是找不到解释。

为什么仅在宏在启动过程中运行时才会发生这种情况?这与宏尝试运行时未完全加载Excel或Outlook有关吗?

2 个答案:

答案 0 :(得分:0)

我要尝试的第一件事是通过使用/ RegServer开关从命令行运行Outlook,重新注册服务器组件。

其次,我将使用dcomcnfg Windows实用程序检查Microsoft Outlook组件的启动/激活设置。 (右键单击“开始”,“运行”> dcomcnfg,依次展开“组件服务”,“我的电脑”,“ DCOM配置”,在列表中找到Microsoft Outlook,右键单击>“属性”,“安全性”选项卡。

这里是指向Microsoft支持页面的链接,该链接可能与您的问题有关...

You receive run-time error 429 when you automate Office applications

如果您可以提供Office的错误号和版本,以及您的计算机是否属于AD域,则可能更容易找到问题的根源!

答案 1 :(得分:0)

不久前我遇到了类似的问题。

最好从excel端开始整个过程​​,而不要从Outlook中打开excel。

因此打开excel,将图表保存为pdf,然后从excel宏中打开Outlook以发送电子邮件。不涉及任何Outlook宏。