VB6 Excel.Application对象“权限被拒绝”

时间:2012-05-16 13:39:25

标签: vb6 excel-vba vba excel

  
    

我放弃了,将所有内容发送到XLS VBA。谢谢!

  

我不得不在Win7和Office2010(v14.0 32位)环境中为VB6程序添加一个小修改。 目前程序试图通过以下代码行进行实例化:

Dim objExcel as Excel.Application
Set objExcel = New Excel.Application

执行第二行代码后,我显示错误70:权限被拒绝。 我已经在Excel VBA上尝试了一个简单的测试,对于相同的代码行,并且效果很好。

任何线索?应该运行的服务是否可能已关闭? 我应该做些什么来避免重新安装Office?

我收集的提示:

  1. 已尝试在DCOMCNFG上配置权限,但无法找到Excel应用程序。

  2. 尝试运行excel.exe / regserver但似乎没有任何事情发生:Excel应该像往常一样运行它应该以静默方式运行。

  3. Ran ProcessMonitor发现对Excel.exe \automation的调用显示Path Not Found(我检查了路径,没问题,我猜\automation正在烦恼)。

  4. 如果我更改代码以实例化Word应用程序(当然还有dll引用),则会出现相同的错误。

  5. Office14文件夹的完全权限。请参阅以下链接:http://i.stack.imgur.com/sgZW5.png (对不起,作为新用户,无法发布图片)

  6. 提前致谢。

    加布里埃尔

5 个答案:

答案 0 :(得分:2)

我面临类似的问题,我在访问DB VBA中使用打开excel文件,因此我使用命令“Set xlApp = CreateObject(”Excel.Application“)”,突然有一天开始抛出错误70访问被拒绝,并且在它运行几个月之前正常运行。我开始谷歌它,当我得知它是DCOM错误我意识到问题的根源。因为几天前我试图将我的PC与安装在OPC服务器上的OPC客户端连接起来,并且需要更改我的本地默认DCOM设置,我需要更改默认的身份验证级别。所以解决我的问题是:

  1. 在命令行中运行命令dcomcnfg

  2. 转到控制台根目录>组件服务>电脑>我的电脑> DCOM配置>微软Excel应用程序

  3. 右clic并选择属性

  4. 在常规标签中,将身份验证级别更改为“无”

  5. 和tats it

答案 1 :(得分:1)

试试这个

1)打开Windows资源管理器并导航到C:\Program Files (x86)\Microsoft Office

3)右键单击“Office14”文件夹,然后单击“属性”

4)导航到“安全”选项卡

5)给[机器] \用户提供“完全控制”。

6)现在尝试再次运行vb6应用程序

enter image description here

答案 2 :(得分:1)

在DCOM CONFIG中尝试设置以下内容:

  1. 常规标签 - >身份验证级别 - >无
  2. 身份标签 - >选择“互动用户”
  3. 希望这会有所帮助

答案 3 :(得分:0)

您是否在机器上检查了DCOM 默认安全设置?它们位于组件服务MMC管理单元的“我的电脑”属性中。您仍然可以通过运行dcomcnfg来实现目标。

答案 4 :(得分:0)

它让我印象深刻:从截图中看,你似乎在64位Windows上运行Office 32位。

因此,默认情况下,当您打开DCOMCNFG.exe时,您将访问64位版本。这允许您编辑64位COM组件。并解释了为什么你在那里找不到Excel,因为Excel在WoW64中运行。

您应该尝试以下命令:

C:\Windows\System32\mmc.exe comexp.msc /32

打开32位控制台。从那里你应该找到Excel的COM组件的设置,并编辑其权限。允许访问所有人,并尝试再次运行您的程序。如果这样做,你应该优先调整你的权限,只允许特定的用户(允许DCOM访问所有人是危险的......)。

希望有所帮助。