前綴:我的代碼打開一個外部工作簿,其中包含一些對整個組織不可見的信息。我可以打開外部工作簿,併成功從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實例 –