2013-01-17 54 views
0

我在工作表中有兩個宏。第一個檢查某些單元是否被尋址並且具有某些值,然後運行另一個宏。下面的代碼是用於此:excel vba運行時錯誤7 - 內存不足

Private Sub Worksheet_Change(ByVal Target As Range) 

If Not Intersect(Target, Range("K10:K1000")) Is Nothing And Target.Value = "Trapezoidal  roof 0.6mm and above" Or Target.Value = "LightBox ballasted" Then 

Application.ScreenUpdating = False 

Call PPAPricePerkWp 

End If 

End Sub 

這工作正常它自己。

單擊按鈕時會運行第二個宏。此宏將單元格/行復制並粘貼到電子表格的其他部分。

當宏運行時,我得到錯誤Runtime error 7 - out of memory,它破壞了上面的代碼。

是否有另一種方法可以檢查某個列中的單元格是否被解決,並且具有某些值並且不會導致上述錯誤?

+0

「PPAPricePerkWp」中會發生什麼? –

+0

它檢查列k中單元格的單元格值,執行一些計算然後將值粘貼到下面的單元格。調試器在'If Not Target'行中斷,所以'PPAPricePerkWp'沒有運行。 – evoandy

+0

在調用子程序之前,您可能需要禁用事件,以便每次更改單元格時都不會觸發Worksheet_Change – SeanC

回答

5

你可能要禁用事件,你打電話給你的子程序之前,使Worksheet_Change不被觸發每次更改單元格

Application.EnableEvents = False

不要忘記重新打開它,當你已完成