2012-03-28 113 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

相关问题