Excel崩溃设置工作表可见性

时间:2016-05-09 18:24:29

标签: excel vba crash

以下代码一直在我的大型工作簿上崩溃Excel 2016

Dim ws As Worksheet
Dim wb As Workbook
For Each ws In wb.Worksheets
    ws.Visible = xlSheetVisible
Next ws

单步执行代码,我发现它在运行了几十个工作表后崩溃了,但没有在任何特定的工作表上崩溃。当它崩溃时,我需要从任务管理器中删除Excel,它有时会将Windows 10本身崩溃到BSOD。我怀疑某种堆栈溢出问题。我试过迭代遍历工作表名称列表,但结果相同。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

也许你应该试试

newHour = Hour(Now()) 
newMinute = Minute(Now()) 
newSecond = Second(Now()) + x
waitTime = TimeSerial(newHour, newMinute, newSecond) 
Application.Wait (waitTime)

在你的循环中获得一些合理的x值(可能是5)。我怀疑编译器是"优化"并堆叠一堆应用程序请求,这会使系统超时。

PS我希望你知道不应该声明ws并且应该将wb设置为工作簿,因为这会导致问题。