Excel VBA意外错误419 - 拒绝使用对象的权限

时间:2018-06-18 18:35:26

标签: excel-vba vba excel

我有一个带有VBA编程的Excel电子表格,表格是activex控件,表单控件。电子表格工作正常,直到上周。我认为问题是在自动安装Windows uptade时开始的,但这可能只是巧合,因为如果这是原因,我不肯定。现在,电子表格打开,并立即出现一个小窗口,指示:

  

“Visual Basic for Applications - Permisson拒绝使用对象(好的,   救命)”。选择帮助,最少信息,这是无关紧要的。   选择确定,另一个窗口弹出“Visual Basic for Applications -   意外错误419(确定,帮助)“

我甚至无法将表格保存为其他名称。 VBA代码无法运行。如果我打开任何新的电子表格,Excel将正常运行,也可以使用其VBA。就在出现此问题之前,每次打开电子表格时都会出现一个窗口,表明Excel阻止了ActiveX控件的功能,并询问是否允许使用ActiveX。今天,我启用了所有宏以及所有activex控件。我之前对此电子表格的备份也存在同样的问题。没有用。我去了VBA Edit - > References并比较了我的库和电子表格中的库。似乎没有图书馆丢失。怎么解决?

2 个答案:

答案 0 :(得分:0)

您的工作站和/或网络上的权限已更改。特别是,包含DLL文件的文件夹,其中包含VBA中引用的对象。作为一个例子(我不知道这是否确实如此,但是一个例子),如果你的代码引用了 Microsoft Scripting Runtime (许多VBA项目都有),你的代码需要权限访问C:\Windows\SysWOW64\scrrun.dll。 (我通过调用VBA编辑器,选择Tools - > References,然后选择Microsoft Scripting Runtime并阅读对话框窗口底部来找到这个位置。)

这是DLL在 my 工作站上的位置。您的可能不同,或者在系统更新期间可能已移动,或者访问该文件夹的权限可能已更改。您必须检查VBA项目中所有引用的位置以确定这一点。有时引用的库位于网络驱动器上,如果网络权限发生变化,这可能会使问题复杂化。

答案 1 :(得分:0)

我决定尝试导出所有表格(* .frm; * .frx)。一切都进行得很好,直到我遇到了带有Shockwaveflash对象的特定形式。此时,消息“权限被拒绝使用对象”。宾果游戏!

然后,我跟踪了此类冲击波对象引用在我的工作站上的位置,并应用了完全的管理员控制权。但是,我仍然无法使用冲击波对象。然后,我卸载了Flash,并从Adobe下载了最新的shockwaveflash插件。当我打开Excel-> Developer-> Insert-> ActiveX控件->更多控件-> ShockwaveFlashObject,然后将对象插入工作表时,出现消息:“ MS Excel-无法插入对象”。我已经从C:\Users\[User ID]\AppData\Local\Temp\Excel8.0中手动删除了“ * .exd”。也从C:\Users\[User ID]\AppData\Local\Temp\VBE\中删除了,但是问题仍然存在:“ Microsoft Excel-无法插入对象”。

要解决此问题,我终于访问了VBA编辑器,并删除了其中包含ShockwaveFlashObject的用户窗体。之后一切恢复正常。