即使在空闲时也使用50%CPU的Excel工作簿

时间:2015-01-10 16:58:27

标签: vba excel-vba excel-2010 cpu-usage excel

首先:

  • 使用excel 2010,Win 7
  • 已停用所有其他附加组件
  • 所有电子表格都将最后使用的单元格缩减为最小行数,列值
  • 我的旧机器符合今天的标准,Dell Inspiron 6400,1.73 GHz,3.3 Gig ram

我有一个电子表格,当它打开并处于活动状态时,即使在空闲时也至少使用50%的cpu。如果我然后运行其他程序,这会导致计算机过热并关闭。几个月前我在另一个论坛上发布了这个问题,最后的建议是,"不要担心它"。好吧,我再也不能这样做了。这成了一个问题。

起初我以为这是任何带有宏的工作簿。我已经说服自己,事实并非如此。然后我认为它可能是我添加的附加组件。情况也是如此。我阅读将电子表格最小化到最小尺寸。这没有任何帮助。此工作簿具有自动打开功能,可以保存备份,从Internet收集一些数据并对该数据进行一些操作。我完全删除了这个子程序,没有效果。另外需要注意的是,如果我打开另一个工作簿,也将此打开,并使第二个工作簿成为活动工作簿,则te cpu使用率几乎为零。最后要注意的是,我有几个前身,#34;最终版本"这个工作簿。他们都没有这个cpu问题。在某个地方,不知何故,我已经为这个"最终版本添加了一些代码"这导致了这个问题。

我希望有人可以给我一些线索,了解还有什么可以寻找的。我将这些旧备份与当前版本进行比较,但这将是一个漫长的过程。任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

根据我的评论,当每次打开工作簿时运行Auto_Open宏时,它会为其Internet数据创建一个新的连接,而不会丢弃以前的数据。应列出这些古老的连接数据►连接►连接和/或数据►获取外部数据►现有连接。

由于我没有创建互联网连接的完整方法和参数,我将提供这种``事件宏,它将在工作簿关闭时删除所有连接。

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    With ThisWorkbook
        Dim cn As Object
        For Each cn In .Connections
            cn.Delete
        Next cn
        .Save
    End With
End Sub

该宏进入 ThisWorkbook 代码表。请注意,它还会保存您的工作簿;如果这不是想要的行为,请将代码移动到模块表并将其更改为可手动运行的公共宏。