使用VBA打开Excel文件的最快方法

时间:2018-07-13 15:42:29

标签: excel-vba excel-2010

我有一个电子表格,其中包含大约7600行和很多公式。电子表格有时可能需要花费几分钟才能加载。有时,我只是想快速检查电子表格中某个项目的日期,但这花了很长时间。我创建了一个宏,到目前为止将加载时间减少到32秒。有什么方法可以使它的加载速度比我到目前为止编写的还要快?

Application.DisplayAlerts = False
Application.Calculation = xlManual

Workbooks.Open "foo_bar.xls", ReadOnly:=True, UpdateLinks:=False
Windows("foo_bar.xls").Activate
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
MsgBox(ActiveCell.Value)

3 个答案:

答案 0 :(得分:1)

在所有人的帮助下,我找到了解决方案。使用以下代码抑制警报,阻止计算并抑制屏幕更新。立即打开电子表格的另一个关键是要修复所有断开的链接。显然,如果链接断开,尽管指示它不要计算或更新引用它们的公式,但这仍然会导致加载电子表格时出现延迟问题。

Application.DisplayAlerts = False
Application.Calculation = xlManual
Application.ScreenUpdating = False
Workbooks.Open "foo_bar.xlsx",ReadOnly:=True, UpdateLinks:=False

答案 1 :(得分:0)

您可以将其他应用程序添加到代码中,也可以更改文件名

Sub GetIt()
    Dim wb As Workbook, sh As Worksheet, LstRw As Long
    Set wb = Workbooks.Open("C:\Users\dmorrison\Downloads\foo_bar.xlsx")
    With wb
        Set sh = Sheets(1)
        With sh
            LstRw = .Cells(.Rows.Count, "A").End(xlUp).Row
            MsgBox .Range("A" & LstRw).Value
        End With
        .Close
    End With
End Sub

答案 2 :(得分:0)

使用xlsb扩展名保存。二进制文件通常比非二进制文件小4倍左右,并且打开/关闭文件的速度也比平均速度快4倍。