为什么MSExcel在WorkSheet_ChangeSub过程中崩溃并关闭?

为什么MSExcel在WorkSheet_ChangeSub过程中崩溃并关闭?

当我在Excel表上运行VBA代码时,我遇到了Excel崩溃的问题。
我试图在工作表更改中添加以下公式:

Private Sub Worksheet_Change(ByVal Target As Range)
   Worksheets("testpage").Range("A1:A8").Formula = "=B1+C1"End Sub

当运行此代码时,我收到一条消息:“excel遇到了一个问题,需要关闭。“而Excel关闭了。

https://img1.mukewang.com/5cf0ece200018ce104990307.jpg

如果我在Worksheet_Activate()程序,工作正常,不会崩溃

Private Sub Worksheet_Activate()
   Worksheets("testpage").Range("A1:A8").Formula = "=B1+C1"End Sub

但我真的需要它在Worksheet_Change()程序。

在使用Worksheet_Change()事件,谁能指出解决这个问题的正确方向?


翻翻过去那场雪
浏览 988回答 3
3回答

三国纷争

Excel崩溃了,而不是VBA函数。事件未被禁用,调用堆栈由OnChange事件的无限循环填充。帮助查找这类错误的一个小建议是:在事件的第一行上设置一个断点,然后一步地按F8执行它。

慕哥9229398

这个解决方案也很好:Option ExplicitPrivate Busy As BooleanPrivate Sub Worksheet_Change(ByVal Target As Range)     If Not Busy Then         Busy = True         Range("A1:A8").Formula = "=B1+C1"         Busy = False     End IfEnd Sub
打开App,查看更多内容
随时随地看视频慕课网APP