2012-03-28 228 views
0

我粘貼在只拾取可見行並將其粘貼到新工作表以進行更多處理的代碼片段下方。但是,當它嘗試粘貼時,會失敗,並顯示「Excel無法用資源完成操作,請關閉一些程序或稍後再試」。這個代碼的任何替代?順便說一句,這是Excel 2007中將數據粘貼到新工作表時Excel VBA錯誤

Function createSummary() 
    ActiveSheet.Outline.ShowLevels RowLevels:=2 
    Cells.Select 
    Selection.SpecialCells(xlCellTypeVisible).Select 
    Application.CutCopyMode = False 
    Selection.Copy 

    Worksheets.Add().Name = "Summary" 
    ActiveSheet.Paste 
    Cells.Font.Bold = False 

    Columns("A").Insert 
+0

我沒有發佈整個代碼,因爲它沒有做任何事情。 – rvphx 2012-03-28 18:30:06

+0

你知道如何調試代碼嗎?如果是,那麼你能告訴我們究竟哪一行發生錯誤嗎?也有任何理由爲什麼你把它作爲'函數createSummary()'而不是'Sub createSummary()'? – 2012-03-28 18:44:31

+0

我還沒有嘗試過你的代碼,但我不記得能夠在'Copy'和'Paste'之間做任何事情。我當然不會嘗試在它們之間添加和重命名工作表。 – 2012-03-28 18:51:39

回答

2

沒有看到您的工作簿它看起來好像你有某種類型的內存問題。

你不需要選擇單元格來與它們一起工作。嘗試這樣的:

With ActiveSheet 
    .Outline.ShowLevels RowLevels:=2 
    .UsedRange.SpecialCells(xlCellTypeVisible).Copy Worksheets.Add().[A1] 
End With 

With ActiveSheet 
    .Name = "Summary" 
    .UsedRange.Cells.Font.Bold = False 
    .Columns("A").Insert 
End With 
+0

+1。非常優雅和高效 – 2012-03-28 20:13:15

+1

@iDevelop - 謝謝。 Rajiv,您需要爲specialcells方法添加錯誤處理,並且在執行前檢查名爲summary does not的工作表已經存在。 – Reafidy 2012-03-28 20:21:59

+0

完美!這就像一個魅力,我擺脫了這個錯誤。非常感謝@Reafidy – rvphx 2012-03-28 20:30:57