将行插入Excel需要很长时间



我有一个Excel文档(10张纸(。1张纸在这一点上大约有1600行和约148列的信息。这张纸中没有公式。

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

我的文件的一个版本(我有不同的备份(似乎已经修复了它。但是我无法在当前文件中复制它。我不知道该修复是什么。

我已经搜寻了互联网以寻求解决方案,但尚未找到解决方案。我正在Excel 2010上跑步。谁知道我需要的技巧?还是更新到Excel 2016我的最佳选择?

欢呼!

重新计算滞后的三个主要原因是计算,事件处理(由于工作表_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

您可以看到合适的添加或删除应用程序环境设置。

如果问题事实证明是一个写得不好的工作表_change,则将其发布在此处或改进代码评论,

快速更新:当我删除其他纸张时,问题已解决。这些床单不会通过公式参考任何方式连接。这两张床单都有宏观植入的(平坦(信息,但是在完成宏之后,它只是平坦的信息。我已经尝试禁用相关的宏观,但这并不能解决问题。仅删除其他床单:如果我删除了1张床单,则时间将从14秒降至7秒,如果我删除了另一个片段,那将会将其删除为0秒。

似乎以某种方式通过某种计算(在宏之外(连接了这些床单,但我无法想象这可能是什么。有什么想法吗?

最新更新