excel打开只读工作簿时,对象'工作簿'的方法'打开'失败错误

时间:2016-08-01 18:23:26

标签: excel vba excel-vba error-handling

我的代码应该打开一大堆工作簿,提取关键信息并关闭它们。我可以看到工作簿加载,但是当它即将打开时,我得到运行时错误1004,表示

  

对象'工作簿'的方法'打开'失败

我的代码如下,当我调试时,它带我到do 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 个答案:

答案 0 :(得分:2)

事实证明有些文件已损坏,所以当代码遇到这个时它没有用。这个问题的解决方案是关闭损坏的工作簿然后当我重新打开它时,我点击旁边的箭头打开并选择&#34;打开并修复&#​​34;然后保存了该文件的新副本,代码运行顺利