加载用户表单,而无需重新计算电子表格

时间:2018-06-26 06:51:40

标签: excel excel-vba vba

在我的Excel电子表格中,我使用以下VBA代码使用UserForm中的值通过 ComboBox 获得了sheet1


电子表格上的 ComboBox1 列表:

     A     B
1    Q1
2    Q2
3    Q3
4    Q4

要调用 UserForm1(已连接到电子表格上的按钮)的VBA代码:

Sub Test()
Call UserForm1.Show(vbModeless)
End Sub
UserForm1

VBA代码:

Private Sub UserForm_Activate()
ComboBox1.List = Sheet1.Range("A1:A4").Value
End Sub

Private Sub CommandButton1_Click()
Unload UserForm1
End Sub

到目前为止,所有这些都工作正常。但是,当用户按下按钮来加载UserForm1时,整个电子表格将由Excel重新计算,这会花费很多时间。

因此,我尝试将代码更改为此:

Sub Test()
Application.Calculation = xlManual
Call UserForm1.Show(vbModeless)
Application.Calculation = xlAutomatic
End Sub

使用此代码可以加载UserForm1,而无需重新计算电子表格。
但是,由于我不想使电子表格保持“手动”重新计算模式,因此必须在VBA代码中将其重新设置为“自动”。 但是,这会导致同样的问题,即加载时间长。唯一的区别是,重新计算现在在显示UserForm之后发生。

是否可以加载整个UserForm而无需重新计算电子表格,而是将其保持在自动计算模式下?

0 个答案:

没有答案