【发布时间】:2014-05-12 22:18:01
【问题描述】:
您好,提前感谢您的帮助。
我有一些我承认从网站借来的代码。它每 X 秒更改一次显示的工作表。在我的情况下 3 秒。当我运行它时,它会一次更改到下一张,然后在 3 秒后出错。
我收到的错误是“无法运行宏”C:\users\BenjaminSmith\Desktop\Book1.xlsm'!displaysheets'。该工作簿中的宏可能不可用,或者所有宏都可能被禁用。"
这是我的宏的代码
Sub displaysheets()
ShtNum = ActiveSheet.Index
ShtNum = ShtNum + 1
If ShtNum > Sheets.Count Then
ShtNum = 1
End If
Sheets(ShtNum).Activate
Application.OnTime Now + TimeValue("00:00:03"), "displaysheets"
End Sub
如果我删除该行
Application.OnTime Now + TimeValue("00:00:03"), "displaysheets"
我可以一遍又一遍地运行宏,没有任何问题。除了它不会自行继续的事实之外......
电子表格是 XLSM。 MS VBA 是 7.0。 Excel 是 2010。
我在想问题可能是因为代码是递归的?
感谢您的建议。
【问题讨论】:
-
它对我有用。希望您已将
displaysheets放入模块中? -
您的代码也适用于我。但我会将工作表激活部分简化为
Sheets(ActiveSheet.Index Mod Sheets.Count + 1).Activate。你可以试试Application.OnTime Now + TimeValue("00:00:03"), ThisWorkbook.Name & "!displaysheets" -
@Siddharth Rout 我在“ThisWorkbook”中有代码,我插入了一个模块“Module1”并将代码移到那里,一切都按预期工作。这两个地方有什么区别?
-
查看我发布的答案:)