使用Excel 12.0库打开Excel文件的权限被拒绝&;VB6

使用Excel 12.0库打开Excel文件的权限被拒绝&;VB6,vb6,excel,vba,Vb6,Excel,Vba,我以前在VB6应用程序中使用过很多次Excel,在尝试完成一些非常简单的事情时从未遇到过如此奇怪的问题 我正试图打开一个excel(xls或xlsx)文件并读取值,您可能会看到 当我试图打开文件时,我得到一个错误70(权限被拒绝)。奇怪的是,没有其他excel open实例(在task manager应用程序或流程中)。没有其他人试图访问该文件。我可以在excel中无警告地打开文件,也可以在VB6中使用基本的“打开文件以输入为#1”语法无错误地打开/读取/关闭文件。我可以使用Kill()删除文件

我以前在VB6应用程序中使用过很多次Excel,在尝试完成一些非常简单的事情时从未遇到过如此奇怪的问题

我正试图打开一个excel(xls或xlsx)文件并读取值,您可能会看到

当我试图打开文件时,我得到一个错误70(权限被拒绝)。奇怪的是,没有其他excel open实例(在task manager应用程序或流程中)。没有其他人试图访问该文件。我可以在excel中无警告地打开文件,也可以在VB6中使用基本的“打开文件以输入为#1”语法无错误地打开/读取/关闭文件。我可以使用Kill()删除文件,这样就不会出现目录权限问题-请帮助-我不知所措

  Dim xlApp As New Excel.Application

  Dim xlWBook As Excel.Workbook

  'Error Occurs Here
  Set xlWBook = xlApp.Workbooks.Open(File)

  Dim xlSheet As Excel.Worksheet
  Set xlSheet = xlWBook.Sheets.Item(1)

  Dim y As Integer
  For y = 1 To 99999
    If Len(xlSheet.Cells(y, 1)) > 0 Then
      Send xlSheet.Cells(y, 1) & " - " & xlSheet.Cells(y, 2) & "<br>"
    End If
  Next

  Set xlWBook = Nothing
  Set xlApp = Nothing
Dim xlApp作为新的Excel.Application
将xlWBook设置为Excel.工作簿
“错误发生在这里
设置xlWBook=xlApp.Workbooks.Open(文件)
将工作表设置为Excel.工作表
设置xlSheet=xlWBook.Sheets.Item(1)
Dim y作为整数
对于y=1到99999
如果Len(xlSheet.Cells(y,1))>0,则
发送xlSheet.Cells(y,1)和“-”以及xlSheet.Cells(y,2)和“
” 如果结束 下一个 设置xlWBook=Nothing 设置xlApp=Nothing

-Jay

能否打开新创建的空电子表格文档

如果这不起作用,可能是您的Excel安装需要重新注册。打开命令提示符并导航到安装Excel的文件夹,通常类似

cd "C:\Program Files\Microsoft Office\Office12"
然后使用选项/regserver启动Excel

excel.exe /regserver
如果这没有帮助,您可以转到控制面板->添加或删除程序,并开始修复Microsoft Office

另一件要检查的事情是是否加载了任何加载项。如果是,请尝试逐个禁用它们,并查看问题是否消失

如果问题仍然存在,您可能需要检查是否有可用的Office更新

我不知道这一切是否与您的问题有关,这是Office应用程序的标准故障排除技术


更新:使用Procmon进行故障排除可能会发现问题所在(请参阅)。

可能不是拒绝权限的文件。

只是想一想,您是否查看了Windows事件日志以查看是否可以在其中找到更多信息?

excel文件中出现问题时可能会发生这种情况,一致性问题。该文件有点损坏


例如,图纸上有两个同名对象。问题是,我无法告诉您的文件是如何与此类“问题”一起保存的,但当Excel尝试打开它时,它会抛出此类错误。

您是否检查了DCOM配置

今天有一个类似的问题,一个试图创建Excel的web服务。应用程序收到的访问被拒绝

在我的实例中,我必须添加internet来宾帐户才能对组件具有访问权限

您可以从开始->运行访问DCOM配置

键入DCOMCNFG-按enter键

然后浏览到组件服务/Computers/My Computer/DCOM配置/Microsoft Excel应用程序

右键单击,属性


设置在“安全”选项卡下。

您似乎创建了一个新的Excel实例,但没有显式关闭它(即xlApp.Close,然后再将其设置为Nothing)。这可能是你的问题的原因

有时,如果从VBA调用Office应用程序时出现了一些松散的实例,那么这些应用程序就会失控。如果您在任务管理器中运行了一些Excel.exe,但在屏幕或任务栏上看不到应用程序,请杀死它们并重试

Dim xlApp As New Excel.Application    
Dim xlWBook As Excel.Workbook    
'Error Occurs Here   
Set xlWBook = xlApp.Workbooks.Open(File) 
没有定义要创建的文件。即

File="C:\myDocuments\myexcel.xlsx". 'Because File string is empty.

这是最好的答案。它将引导您找到解决方案。按照@0xA3提供的步骤操作。特别是在修复office时,请使用procmon对“拒绝访问”错误消息进行故障排除。使用Add电子表格方法是另一个很好的方法。我的团队中有人用这个方法解决了这个问题:我希望它对你有用