我正在尝试根据条件在Excel VBA中设置一个值,但每次都会因堆栈空间错误而崩溃,当我尝试在另一个SO帖子中建议的工作簿上设置ForceFullCalculation时,错误我得到的是:
Run-time error '-2147417848 (80010108)':
Method 'Value' of object 'Range' failed
有问题的代码行
If Range("G4") = "Yes" Then
Range("K4:L6").Interior.ColorIndex = 4 ' green
Range("K4").Value = "x"
End If
代码中有多个这样的块。 当我注释掉设置值'x'的行时,代码似乎运行正常。
If Range("G4") = "Yes" Then
Range("K4:L6").Interior.ColorIndex = 4 ' green
'Range("K4").Value = "x"
End If
将单元格着色为绿色(或任何颜色)后,将单个单元格设置为值'x'时为什么会崩溃? 使用的版本是Excel 2010 32位,在具有8GB RAM的计算机上。
答案 0 :(得分:0)
通常,堆栈空间错误是由递归引起的,例如当您从Worksheet_Change
事件中更改单元格然后调用自身时,会再次更改单元格,再次调用该事件,依此类推。为避免这种情况,您可以在进行更改之前通过添加以下内容来禁用事件:
Application.Enableevents = False ' disable event processing
' your code that makes the changes here
Application.Enableevents = True ' reset events again