我以前曾多次在我的VB6应用程序中使用Excel,并且从未遇到过如此奇怪的问题,试图完成一些非常简单的事情。
我正在尝试打开一个excel(xls或xlsx)文件并读取值,您可能会看到。
当我尝试打开文件时,出现错误70(权限被拒绝)错误。奇怪的是,没有其他excel实例打开(在任务管理器应用程序或进程中)。没有其他人试图访问该文件。我可以在没有警告的情况下在excel中打开文件,我也可以使用基本的“打开文件输入为#1”语法在VB6中打开/读取/关闭文件而不会出错。我可以使用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
-Jay
答案 0 :(得分:1)
您可以打开新创建的空电子表格文档吗?
如果这不起作用,则可能需要重新注册Excel安装。打开命令提示符并导航到安装Excel的文件夹,通常类似于
cd "C:\Program Files\Microsoft Office\Office12"
然后使用选项/ regserver
启动Excelexcel.exe /regserver
如果这没有用,你可以去控制面板 - &gt;添加或删除程序并开始修复Microsoft Office。
要检查的另一件事是是否加载了任何加载项。如果是这样,请尝试逐个禁用它们,看看问题是否消失。
如果问题仍然存在,您可能需要检查是否有可用的Office更新。
我不知道这一切是否与您的问题有关,它是Office应用程序的标准故障排除技术......
更新:使用Procmon进行故障排除可能会发现问题所在(参见http://support.microsoft.com/kb/286198)。
答案 1 :(得分:1)
您是否检查过DCOM配置。
今天有一个类似的问题,一个试图创建Excel.Application的Web服务正在接收拒绝访问。
在我的实例中,我必须添加互联网访客帐户才能拥有该组件的访问权限。
您可以从开始 - &gt;到达DCOM配置运行
键入DCOMCNFG - 按Enter键
然后浏览到组件服务/计算机/我的电脑/ DCOM配置/ Microsoft Excel应用程序
右键单击,属性......
设置位于“安全”选项卡下。
答案 2 :(得分:1)
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.
答案 3 :(得分:0)
可能不是该权限被拒绝的文件。
答案 4 :(得分:0)
想一想,您是否查看了Windows事件日志,看看是否可以在那里找到更多信息?
答案 5 :(得分:0)
当excel文件出现问题(一致性问题)时,可能会发生这种情况。该文件有点破坏。
例如,工作表上有2个具有相同名称的对象。关键是,我不知道你的文件是如何被这种“问题”保存的,但是当Excel试图打开它时,它会引发这种错误。
答案 6 :(得分:0)
您似乎在没有明确关闭它的情况下创建了一个新的Excel实例(即xlApp.Close,然后再将其设置为Nothing)。这可能是你遇到问题的原因。
如果从VBA调用Office应用程序时出现一些松散的Office应用程序,有时会出现问题。如果您在任务管理器中运行了一些Excel.exe,但在屏幕或任务栏上看不到该应用程序,则将其终止并重试。