我有一个电子表格,其中包含大约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)
答案 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倍。