使用 VBA 打开 excel 文件的最快方法
Quickest Way to open an excel file with VBA
我有一个大约有 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)
您可以将您的其他应用程序添加到代码中,也可以更改文件名
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
用 xlsb 扩展名保存它。二进制文件往往比非二进制文件小 4 倍左右(平均),而且它们往往 open/close 快 4 倍(平均)。
在大家的帮助下,我找到了解决办法。使用以下代码来抑制警报、阻止计算和抑制屏幕更新。立即打开电子表格的另一个关键是修复所有损坏的链接。显然,如果有断开的链接,这仍然会导致加载电子表格的延迟问题,尽管它被告知不要计算或更新任何引用它们的公式。
Application.DisplayAlerts = False
Application.Calculation = xlManual
Application.ScreenUpdating = False
Workbooks.Open "foo_bar.xlsx",ReadOnly:=True, UpdateLinks:=False
我有一个大约有 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)
您可以将您的其他应用程序添加到代码中,也可以更改文件名
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
用 xlsb 扩展名保存它。二进制文件往往比非二进制文件小 4 倍左右(平均),而且它们往往 open/close 快 4 倍(平均)。
在大家的帮助下,我找到了解决办法。使用以下代码来抑制警报、阻止计算和抑制屏幕更新。立即打开电子表格的另一个关键是修复所有损坏的链接。显然,如果有断开的链接,这仍然会导致加载电子表格的延迟问题,尽管它被告知不要计算或更新任何引用它们的公式。
Application.DisplayAlerts = False
Application.Calculation = xlManual
Application.ScreenUpdating = False
Workbooks.Open "foo_bar.xlsx",ReadOnly:=True, UpdateLinks:=False