2016-08-01 190 views
0

我有打开工作簿,拉取关键信息并关闭它们的应用程序的代码。我可以看到工作簿加载但是当它即将开启我得到的运行时错误1004,说excel打开只读工作簿时,对象“工作簿”的“打开”方法失败错误

法“打开”对象“工作簿”失败

我的代码如下,当我调试它带我到二号线下做while语句:

Sub OEEsummmary() 
Dim Gcell As Range 
Dim MySheet As Worksheet 
Dim Txt$, MyPath$, MyWB$ 
Dim myValue As Integer 
Dim x As Long 
Dim v As Variant, r As Range, rWhere As Range 

MyPath = "L:\Manufacturing Engineering\Samuel Hatcher\" 
x = 2 
Set MySheet = ActiveSheet 

Application.ScreenUpdating = False 

Do While MySheet.Range("A" & x).Value <> "" 
    MyWB = MySheet.Range("A" & x).Text 
    Workbooks.Open Filename:=MyPath & MyWB, ReadOnly:=True, IgnoreReadOnlyRecommended:=True 
    Set Gcell = ActiveSheet.Range("E21") 
     With MySheet.Range("A" & x) 
      .Offset(0, 7).Value = Gcell.Value 
     End With 
    ActiveWorkbook.Close savechanges:=False 
    x = x + 1 
Loop 

End Sub 

我试图改变不同定义的变量与变种按照其他人谁有同样的问题,但毫无效果的说明。任何帮助非常感谢,谢谢!

更新*我将两个文件名移到了列表底部,其他文件名都打开并完全复制了信息,但是当循环到达最后两个文件时,它给了我一个错误。所有的文件都是底部2的操纵拷贝,所以我不明白为什么它不工作

update2 *它似乎好像只有工作簿,给出的错误,并不会加载是在网络中的另一台计算机上打开的,当这个程序运行时,所有的工作簿将在其他计算机上打开

+1

什么是值错误发生时'MyWB'的值? – Dave

+0

@Dave OEE 1173.xlsm – Vbasic4now

+2

这个文件肯定存在于指定的位置?您没有在单元格A2中添加会导致文件名无效的任何尾随或前导空格? – Dave

回答

2

事实证明,一些文件已损坏,所以当代码遇到这种情况它没有工作。解决此问题的办法是关闭损坏的工作簿,然后当我重新打开它时,我单击旁边的箭头打开并选择“打开并修复”,然后保存该文件的新副本,并且代码顺利运行