2010-06-09 318 views
0

我有一个宏,它在发生单元更改时调用。该宏使用以下代码选择图像,删除它们,并根据单元格值插入另一个图像。我有两张相同的代码。运行时错误:Excel宏中的“内存不足”

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    ActiveSheet.Shapes.SelectAll 
    Selection.Delete 
    'insert image code here. 
End Sub 

在一个表,它的工作完全正常,并删除所有图像,而在另一侧的薄片,它给我的运行时错误“内存不足”,并强调以下行:

ActiveSheet.Shapes.SelectAll 

谁能告诉我为什么会发生这种情况?它在一个中完美地工作,而不在另一个中。

我想告诉你的另一件事是,当我将这个Excel宏传递给我的客户端时它工作正常;两张纸都工作正常。突然在2天后,他开始在他工作的一张纸上发现错误。

我不知道为什么会发生这种情况。谁能告诉我这是什么原因以及我如何解决它?

回答

1

你能提供你的插入图片代码吗? 如果您在该代码中自己更改当前选择,那么将无休止地调用此过程。按照以下代码处理此事件处理程序时应考虑禁用事件:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Application.EnableEvents = False 
     ' do something 
    Application.EnableEvents = True 
End Sub