【发布时间】:2016-10-31 09:19:20
【问题描述】:
我正在尝试根据条件在 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 的机器上。
【问题讨论】:
-
您是否在像
Worksheet_Change这样的活动中这样做?通常堆栈空间错误是由递归引起的。 -
是的,它在 WorkSheet_Change 中。你能推荐一种不同的方式来阻止它崩溃吗?我不确定你提到的递归发生在哪里,我对 Excel VBA 有点陌生。
-
那么您需要在更改单元格之前添加
Application.Enableevents = False(这将再次触发您的事件,等等),然后重置为True。
标签: excel excel-2010 vba