Я написал приведенный ниже код, чтобы просмотреть мои рабочие листы как своего рода слайд-шоу для использования в отделе продаж. Код работает отлично, когда я перехожу в режим отладки, однако, когда я запускаю макрос, он работает только с перерывами, иногда получая выбор рабочих листов без повторной активации функции обновления экрана.Ошибка прерывистой макросов VBA
Вот код, который я создал до сих пор:
Sub Runshow()
Dim ws As Worksheet
On Error GoTo exit_
Application.EnableCancelKey = xlErrorHandler
For Each ws In ThisWorkbook.Worksheets
ws.Protect
Next
Application.DisplayFullScreen = True
Application.DisplayFormulaBar = False
ActiveWindow.DisplayWorkbookTabs = False
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHorizontalScrollBar = False
ActiveWindow.DisplayVerticalScrollBar = False
Application.Calculation = xlManual
Let y = 0
Do Until y = 80
Application.ScreenUpdating = False
Workbooks.Open("c:\users\admin\downloads\crm.xlsx").Activate
Application.Calculate
ActiveWorkbook.Close savechanges = False
Application.ScreenUpdating = True
ThisWorkbook.Activate
Let x = 0
Do Until x = 23
For Each ws In ActiveWorkbook.Worksheets
ws.Select
Application.Wait (Now + TimeValue("00:00:10"))
x = x + 1
Next
Loop
y = y + 1
Loop
exit_:
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect
Next
Application.DisplayFullScreen = False
Application.DisplayFormulaBar = True
ActiveWindow.DisplayWorkbookTabs = True
ActiveWindow.DisplayGridlines = True
ActiveWindow.DisplayHorizontalScrollBar = True
ActiveWindow.DisplayVerticalScrollBar = True
Application.Calculation = xlAutomatic
End Sub
Какая ошибка вы получаете? Кроме того, ваша петля для 'Do Until x = 23', кажется, ничего не делает? Вы перебираете каждую книгу, повторяя этот цикл 23 раза, но никогда не используя x для чего-либо. И какова ваша причина для 'y = y + 1' дважды в одном цикле, не можете ли вы просто использовать' y = y + 2' один раз? И я не вижу, для чего нужен цикл 'y'. –
Я не знал, что вы можете использовать 'Let' в VBA. Спасибо за ваш вопрос, научил меня чему-то! – BruceWayne
Почему бы не использовать powerpoint? – findwindow