3

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

我必须在 Win7 和 Office2010 (v14.0 32bits) 环境中对 VB6 程序进行小修改。目前该程序尝试通过以下代码行实例化:

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

在执行第二行代码后,我看到了错误 70: Permission Denied。我已经在 Excel VBA 上尝试了一个简单的测试,对于同一行代码,效果很好。

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

我收集的提示:

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

  2. 已尝试运行 excel.exe /regserver 但似乎没有任何反应:当 Excel 应该静默运行时,它照常运行。

  3. 运行 ProcessMonitor 并发现调用Excel.exe \automation显示Path Not Found(我检查了路径,没问题,我猜这\automation很麻烦)。

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

  5. 授予 Office14 文件夹的完全权限。图片在以下链接: http: //i.stack.imgur.com/sgZW5.png (抱歉,作为新用户,无法发布图片)

提前致谢。

加布里埃尔

4

5 回答 5

3

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

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

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

  3. 右键单击并选择属性

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

并找到它

于 2013-07-31T17:06:10.437 回答
1

尝试这个

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

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

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

5) 将“完全控制”授予 [Machine]\Users。

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

在此处输入图像描述

于 2012-05-16T14:31:56.177 回答
1

它让我震惊:从您的屏幕截图中,您似乎在 64 位 Windows 上运行 Office 32 位。

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

您应该尝试以下命令:

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

打开 32 位控制台。从那里您应该找到 Excel 的 COM 组件的设置,并编辑其权限。允许所有人访问,然后再次尝试运行您的程序。如果这可行,您应该在后面微调您的权限以仅允许特定用户(允许 DCOM 访问每个人是危险的......)。

希望有帮助。

于 2012-05-18T07:00:57.060 回答
1

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

  1. 常规选项卡 -> 身份验证级别 -> 无
  2. 身份选项卡-> 选择“交互式用户”

希望这可以帮助

于 2016-05-26T20:08:47.230 回答
0

您是否检查了机器上的 DCOM默认安全设置?这些位于组件服务 MMC 管理单元中“我的电脑”的属性中。你仍然可以通过运行到达那里dcomcnfg

于 2012-05-16T16:23:37.357 回答