2016-05-09 8 views
2

Следующий код стабильно падает Excel 2016 на моей большой книгеExcel Сбои видимость настройки рабочего листа

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

Stepping через код, я считаю, что он выходит из строя после того, как работает на пару десятков рабочих листов, а не на каком-либо конкретном Рабочий лист. Когда он выходит из строя, мне нужно убить Excel из диспетчера задач, а иногда он сам разбивает Windows 10 на BSOD. Я подозреваю, что проблема переполнения стека. Вместо этого я попытался выполнить итерацию с помощью списка имен рабочих листов с тем же результатом. Есть идеи?

+4

попробуйте 'ws.Visible = true'? –

+3

* Я подозреваю, что какая-то проблема переполнения стека * - и я ожидаю какое-то [так] решение =) –

ответ

0

Может быть, вы должны попробовать

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

в пределах вашего цикла в течение некоторого разумного значения х (возможно, 5). Я подозреваю, что компилятор «оптимизирует» и укладывает кучу запросов приложений, что выводит систему из строя.

PS Я ожидаю, что вы знаете, что ws не следует объявлять и что wb должен быть установлен в книгу, потому что это может вызвать проблемы.

+0

Решено ли это решить вашу проблему? –