2009-11-08 39 views
0

在我的工作簿中,我复制当前工作表以保留销售记录。最终,工作簿会填满销售额,并在某些时候尝试复制另一张工作表时发生错误。保存后,然后完全退出Excel,然后重新加载文件,我可以继续没有问题。我猜这是一个内存问题,但我不确定如何解决它,而无需重新启动Excel。我完全不记得错误的措辞,但它沿着“工作表复制方法失败”的方向行事。 FWIW我在复制工作表的宏的末尾使用“Application.CutCopyMode = False”。复制方法由于内存而失败

月1日编辑:
我想发布的所有代码,但只是这么多了(主要是不相关的更新值,输入验证,等等,等等);如果我发布了所有内容,那么我必须发布所有其他功能才能使其有意义。我只想说,这就是我认为是适用的:

ActiveSheet.Copy After:=Sheets(3) 
...(more code)... 
Call resetInterface(True, True, (wasScreenUpdating), (wasProtected)) 

,并为“resetInterface”功能:

' Final operations for a typical function/sub ' 
Function resetInterface(Optional calc As Boolean = False, Optional ccmode As Boolean = False, Optional scrUpdate As Boolean = True, Optional protectWS As Boolean = False) 
    With Application 
     If calc Then 
      .Calculation = xlCalculationAutomatic 
      .Calculate 
     End If 
     If ccmode Then .CutCopyMode = False 
     .ScreenUpdating = scrUpdate 
    End With 
    If protectWS Then ActiveSheet.Protect 
End Function 
+0

一些提示(吸引流量到你的问题,并可能得到它解决):1)标题:使用“Excel宏”或一些类似的关键字b)努力记下特定的信息(事实上,也许你自己可能会“谷歌”这个信息)c)可能会提供你的宏的一个更长的片段。 – mjv 2009-11-08 03:17:39

回答

1

在Excel中复制工作表对象的CodeName属性后会附加1并且时间太长时,就会出现问题。我认为它已经修复,但这取决于你使用的是什么版本。

打开VBA(Alt + F11)并显示Project Explorer(Ctl + R)。查看您复制的工作表的CodeNames。他们是Sheet1,Sheet2等。?或者他们是Sheet1,Sheet11,Sheet111等...?如果是后者,这可能会导致问题。见http://support.microsoft.com/kb/177634

或者,它可能是你有一个工作簿级别名称,见http://support.microsoft.com/?kbid=210684

+0

我正在使用Excel 2003,但没有看到任何“Sheet1111”。看起来像ms支持文章描述了正在发生的事情。尽管蹩脚的解决方法:| – JakeTheSnake 2009-11-09 18:33:09

+0

同意解决方法。我有点惊讶,修复尚未发布。很高兴你有它分类无论如何。 – 2009-11-09 19:30:03

0

你指的错误是: Excel的VB运行时错误1004:“Worksheet类的复制方法失败”

你可以发布你写的宏吗?

相关问题