我有一个宏,它通过excel文件路径列表循环。宏将读取每个路径,打开工作簿,从每个工作簿中复制/提取各种数据,然后将数据粘贴到中央工作簿中。有大约2000个文件路径需要循环访问。正如你所看到的,这是一个非常简单的宏。它运行得很好。但是,运行一段时间(也许在通过前70个文件路径循环后),excel会一直挂在我身上(它显示打开文件时出现的“下载”消息框)。如果我单击msg框上的取消,工作簿仍然打开并且宏按正常方式继续。但随着这些“下载”消息框不断弹出,我将不得不坐在这里,为超过1000个更多的文件路径保留宏。有谁知道为什么excel卡在这里?有没有办法解决它?打开excel文件时VBA挂起
甚至更奇怪的是,这个悬挂的消息框并不会发生在每个Workbook上。打开实例,它只发生在每隔几个。
这里是我使用的代码示例:
With ThisWorkbook.Sheets("Filepaths")
For i = firstrow To lastrow
SourceFile = .Cells(i, 1).Value
Workbooks.Open SourceFile, ReadOnly:=True
Set MyFile = Workbooks(Workbooks.Count)
..more code..........
..more code..........
..more code..........
MyFile.close
Next i
End With
感谢您的意见,这些都是很好的点(而且这两种解决方案,我相信我已经在过去尝试过)。但只是为了检查,我已经修改了我的Workbooks.Open线这样的:
Application.DisplayAlerts = False
Workbooks.Open SourceFile, ReadOnly:=True, UpdateLinks:=False
Application.DisplayAlerts = True
但问题仍然弹出...
什么奇怪的是,当我通过线直通一步..线当我经过“Application.DisplayAlerts = False”行后,当我将鼠标悬停在“Application.DisplayAlerts”变量上时,它仍然表示正确?!
(而你在它和'ScreenUpdating')也许关掉'Application.DisplayAlerts'会有所帮助。 –
你不能'Application.DisplayAlerts = False'? – Tyeler
某些工作簿中可能无效的外部链接? –