前缀:我的代码打开一个外部工作簿,其中包含一些对整个组织不可见的信息。我可以打开外部工作簿,并成功从PivotTable
中检索所有数据。防止屏幕在打开第二个工作簿时闪烁(同一实例)
问题:当我的代码运行时,屏幕闪烁约0.5秒以显示其他工作簿。
目标:在工作簿之间切换时,屏幕上不会有任何闪烁。
我的代码(相关部分):
Option Explicit
Public Sub GetBudgetData_fromPivotTable(Budget_ShtName As String, Budget_PvtName As String)
Dim BudgetWB As Workbook
Dim PvtTbl As PivotTable
Dim pvtFld As PivotField
Dim strPvtFld As String
Dim prjName As String
' ****** This is the Section I am trying to prevent from the screen to flicker ******
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' read budget file parameters
Set BudgetWB = Workbooks.Open(BudgetFile_Folder & BudgetFile_wbName)
BudgetWB.Windows(1).Visible = False
OriginalWB.Activate ' <-- this is the original workbook that is calling the routine
Set PvtTbl = BudgetWB.Worksheets(Budget_ShtName).PivotTables(Budget_PvtName)
' a lot of un-relevant code line
BudgetWB.Close (False) ' close budget file
OriginalWB.Activate
' restore settings
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
只是一个解决方法的想法 - 如何激活一个大型的非模态用户表单?然后闪烁会留在后台。 – Vityata
或另一个想法 - 设置整个Excel应用程序不可见,同时打开BudgetWB - 'application.Visible = false',然后将其设置回来。 – Vityata
@Vityata我宁愿不打开第二个Excel实例 –