在Excel中插入行需要很长时间

时间:2018-02-14 14:16:48

标签: excel performance insert rows

我有一份excel文件(10张)。此时,1张纸上有大约1600行和大约148列信息。此表中没有公式。

起初我认为这是我的宏的一个问题。但事实证明,手动插入一行(或删除)会产生同样的问题:延迟14秒(对于一行!)。我已经尝试删除所有条件格式,数据验证,(删除从其他工作表获取数据的隐藏图表)。我尝试过自动计算(我也在宏中进行),我尝试在"设计模式">中插入/删除一行。但似乎没有任何帮助。

我的文件的一个版本(我有不同的备份)似乎已修复它。但我无法在我当前的文件中重现这一点。我不知道修复的内容。

我已经在互联网上寻找解决方案,但尚未找到解决方案。我在excel 2010上运行。谁知道我需要的技巧?或者正在更新excel 2016我的最佳选择?

喝彩!

2 个答案:

答案 0 :(得分:0)

重新计算延迟的三个主要原因是计算,事件处理(由于Worksheet_Change)和(在较小程度上)屏幕更新。

把这个'帮手'公共模块代码表中的子过程。

Public Sub appTGGL(Optional bTGGL As Boolean = True)
    With Application
        .ScreenUpdating = bTGGL
        .EnableEvents = bTGGL
        .DisplayAlerts = bTGGL
        .AutoRecover.Enabled = bTGGL   'no interruptions with an auto-save
        .Calculation = IIf(bTGGL, xlCalculationAutomatic, xlCalculationManual)
        .CutCopyMode = False
        .StatusBar = vbNullString
    End With
    Debug.Print Timer
End Sub

像这样使用,

sub main()
    appTGGL btggl:=false

    'do everything you have to do here

    appTGGL
end sub

您可以根据需要添加或删除应用程序环境设置。

如果问题原来是写得不好的Worksheet_Change,请在此处或code review发布,以便改进,

答案 1 :(得分:0)

快速更新:当我移到其他工作表时,问题就解决了。这些表格不以任何方式通过公式引用连接。两张纸都有宏观植入的(平面)信息,但宏完成之后它只是平面信息。我试过禁用相关的宏,但这并没有解决问题。只删除其他工作表:如果我删除了其中一张工作表,时间将从14秒缩短到7秒,如果我删除了另一张,那么它将会是0秒。

似乎这些工作表通过某种计算(在宏之外)连接,但我无法想象这可能是什么。任何想法?