2010-06-09 317 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