将侦听器附加到单元格并获得“内存不足”异常

时间:2012-07-27 13:20:35

标签: excel vba

我有一张单击按钮的工作表。此按钮创建两个forumla字符串(即C#excel addin / UDF),然后将它们粘贴到两个单元格中。第一个创建一些数据并将其存储在缓存中,第二个函数使用插入Excel缓存的数据。问题是第二个函数在插入数据之前执行得太早了。

因此,我写了一个函数来扮演一个监听器,并在编辑第一个单元格的值时:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = Sheets("1").Range("A1") Then           'The error is here
        Sheets("1").Cells(5, 1).Calculate
    End If
End Sub

当我点击创建公式/函数字符串的按钮时,我得到:

运行时错误'7':内存不足

我不明白为什么会这样?错误的一行是:

If Target = Sheets("1").Range("A1") Then

编辑当我点击按钮清除整张表X的内容时,这是由于这个事实造成的。有没有解决方法?

1 个答案:

答案 0 :(得分:0)

基本问题是Excel通过计算后进先出序列中的公式来开始重新计算:因此,让按钮代码计算创建缓存的第一个公式是明智的(您可以使用Range。在输入第二个公式之前计算或任何其他适当的计算方法。