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