SaveAs冻结Excel的多种用法

新年快乐,一切。

我正在处理包含多个(100多个)客户端数据的大文件。 需求:

  • 生成客户端活动的每月摘要。
  • 必须以excel可操作的格式。
  • 必须是客户特定的。 没有访问其他的信息。

我现在的stream程可以工作,但是会挂起,可能需要10到45分钟。

排除故障后,我知道与SaveAs方法的问题。 评论所述的行,并仍然允许文件生成和closures不会导致挂起。

For i = 1 to Number_of_clients 'Data is sorted and placed in report tab (not shown) 'Code ensures only report tab is saved with no access to other data ActiveSheet.Copy Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=Filename ActiveWorkbook.Close Application.DisplayAlerts = True Next i 

我目前试图缓解这个问题是暂停应用程序,所以后台进程可以做他们的事情。 我在SaveAs行之后包含了下面的代码。

  Application.Wait (Now + Timevalue("0:00:05")) 

有没有人碰到这个,你有什么build议。 谢谢大家。

“…暂停应用程序,以便后台进程可以做他们的事情。”

你有没有尝试DoEvents

这将控制交还给操作系统,并允许它在代码执行恢复之前完成任何未决事件。 如果你在一个locking的循环中,你应该明确地使用它,这样你就可以手动中断代码的执行。


 ActiveWorkbook.SaveAs Filename:=Filename DoEvents ActiveWorkbook.Close False 

更多信息: VBA中的DoEvents