间歇VBAmacros错误

我已经编写了下面的代码循环浏览我的工作表,作为一种幻灯片在销售部门使用。 当我在debugging模式下执行代码时,代码完美工作,但是当我运行macros时,它只能间歇地工作,有时会在不重新激活屏幕更新应用程序function的情况下select工作表。

这是我迄今为止创build的代码:

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 

我把一些简单的代码放在一起,做了类似的工作,并且运行良好。 你可以从这里build立 – 如果有什么不明白的地方,可以提出任何问题。

 Sub Slideshow() Dim ws As Worksheet PrepareView True For Each ws In ThisWorkbook.Worksheets ws.Activate Application.Wait (Now + TimeValue("00:00:10")) Next ws PrepareView False End Sub Function PrepareView(status As Boolean) If status = True Then ActiveWindow.DisplayWorkbookTabs = False ActiveWindow.DisplayHeadings = False ActiveWindow.DisplayGridlines = False ActiveWindow.DisplayHorizontalScrollBar = False ActiveWindow.DisplayVerticalScrollBar = False ElseIf status = False Then Application.DisplayFullScreen = False Application.DisplayFormulaBar = True ActiveWindow.DisplayWorkbookTabs = True ActiveWindow.DisplayGridlines = True ActiveWindow.DisplayHorizontalScrollBar = True ActiveWindow.DisplayVerticalScrollBar = True End If End Function