为范围设置值时Excel崩溃

时间:2016-10-31 09:19:21

标签: excel-vba excel-2010 vba excel

我正在尝试根据条件在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的计算机上。

1 个答案:

答案 0 :(得分:0)

通常,堆栈空间错误是由递归引起的,例如当您从Worksheet_Change事件中更改单元格然后调用自身时,会再次更改单元格,再次调用该事件,依此类推。为避免这种情况,您可以在进行更改之前通过添加以下内容来禁用事件:

Application.Enableevents = False ' disable event processing

' your code that makes the changes here

Application.Enableevents = True ' reset events again