【问题标题】:vba addin crashing powerpointvba插件崩溃的PowerPoint
【发布时间】:2017-09-03 06:46:37
【问题描述】:

我为一家小公司创建了一个带有几个 vba 宏的 PowerPoint 插件。它在我的机器和小公司的所有机器上都可以正常工作——除了一台。在该机器上,每次用户单击其中一个宏时,PowerPoint 都会崩溃。不管是哪个宏。现在他们问我,可能是什么原因。

好吧,我是怎么理解的(如果我错了,请纠正我),因为每个用户都有相同的插件,所以问题一定出在机器上,而不是插件上,否则它应该在任何地方崩溃。发生故障的机器上一定有什么不同。现在我想为他们列出他们应该检查的内容。计算机的哪些部分可能会在 PowerPoint 和 vba 插件之间产生冲突?

首先,当然是 PowerPoint 本身。他们说,所有机器都有 2013。我已经在其他线程中发现,如果有人使用卡巴斯基安全软件,PowerPoint 2013 和 vba 插件可能会出现问题,但他们说不会。

他们说,所有机器都有 32 位版本的 Office 和相同的操作系统。

我会请他们检查,如果所有机器在服务包方面都具有相同的状态。

在崩溃的机器上,一开始安装了另一个插件,来自https://www.powerusersoftwares.com/的产品。但是在我们卸载了两个插件后,重新启动机器,然后只重新安装了我的插件,同样的问题仍然出现。每当用户尝试从我的插件运行其中一个宏时,PowerPoint 就会崩溃。

有人听说过此高级用户工具与其他 vba 插件之间的冲突问题吗?

这是一个谜。但必须有所不同。我们还能检查哪些可能对 PowerPoint 和插件产生影响的内容?任何建议都可能有所帮助!

谢谢!

(我已经建议,可能是,他们必须在这台机器上整体修复 Office,但他们往往不相信,因为在他们安装我的插件之前问题并未发生。)

【问题讨论】:

  • 我在 Excel 2016 中打开 Office 2003 的插件时遇到了同样的问题,除少数用户外,所有用户都可以正常工作,插件会消失,留下一个没有功能区的空白 Excel 窗口。如果有人知道也请告诉我。
  • 可能与个人资料有关?他们是否尝试过让有崩溃问题的用户登录到另一台机器(通常可以工作)并查看它是否在那里崩溃?或者让其他人登录崩溃的电脑,看看它是否仍然崩溃。
  • 作为Rubberduck(一个开源 VBE 插件)的主要贡献者之一,我可以向您保证,该插件不会在其他机器上崩溃绝对不排除与加载项本身。 VBIDE API 非常不稳定且无法可靠扩展……这取决于插件进入兔子洞的深度。
  • 嗯,看看网站,它看起来像是宿主应用程序本身的 COM 插件,而不是 VBE。应该更稳定。询问的最佳地点很可能是加载项供应商。这个问题看起来不太适合 SO Q&A 格式。似乎在提示轶事“我也是!”答案。
  • 谢谢大家。我会要求他们检查是否存在个人资料关系。在 Mat's Mug:我真的不相信 power-user-tool 是导致崩溃的原因,因为在我们卸载 power-user-tool 后我的插件仍然崩溃。但我认为最好问一下,因为这里有些人可能对此有经验,而我不是。根本没有:我们可以检查计算机的哪些部分是否存在可能对 PowerPoint 和 VBA 插件产生影响的差异?

标签: vba powerpoint powerpoint-2013


【解决方案1】:

宏必须从隐藏的演示文稿中复制内容。为了找到这个隐藏的演示文稿,我们使用了Environ$("USERNAME") & "\AppData\Roaming\Microsoft\AddIns\" 显然,机器上的 USERNAME 定义不正确。我不知道。最后把命令改成

Environ$("appdata") & "\Microsoft\AddIns\"

一切正常。

【讨论】:

    【解决方案2】:

    跟进您来自 cmets 的问题:

    顺便问一下,有没有人知道在尝试避免使用“USERNAME”时访问桌面的方法? Environ$("desktop") 不起作用 - 但也许有办法?

    可以通过Wscript.Shell对象的SpecialFolders方法访问特殊文件夹:

    Dim desktopPath 
    With CreateObject("WSCRIPT.SHELL")
        desktopPath = .SpecialFolders("Desktop")
    End With
    

    According to Ron de Bruin、SpecialFolders 包括:

    • 所有用户桌面
    • AllUsersStartMenu
    • 所有用户程序
    • AllUsersStartup
    • 桌面
    • 收藏夹
    • 字体
    • 我的文档
    • 网罩
    • 打印罩
    • 程序
    • 最近
    • 发送至
    • 开始菜单
    • 启动
    • 模板

    可能与您的原始问题有关(或至少,协助调试错误源):

    当 PowerPoint 加载项出现运行时错误时,默认 PowerPoint 配置会阻止用户进入“调试”模式。这可以通过向注册表添加 DWORD 来覆盖,请参阅this solution。您需要稍微修改 2013 与 2010 注册表路径。

    【讨论】:

    • 这真的很有帮助。谢谢你,大卫。
    猜你喜欢
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多