@Siddharth,根據你所說的,我想我有一個解決方案。當您打開表格時,它只會顯示在ActiveWorkbook
之上。只要所有代碼都在相同的代碼線程中(不確定術語是否正確),就會陷入相同的工作簿中;但是,如果你使用Application.Run
或Application.Ontime
命令,它似乎開始它自己的代碼線程,它是獨立的足以工作。只需要Activate
工作簿/工作表,然後Unload
窗體並遠程調用顯示窗體的宏。
不幸的是,你需要使用Unload
,而不是Hide
,由於上述問題的;這意味着您需要保存所選的所有選項。
Private Sub lstFiles_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ThisWorkbook.Application.Workbooks(lstFiles.Text).Activate
Unload Me
Application.Run "USER_Macro1"
'Application.OnTime Now(), "USER_Macro1"
End Sub
Private Sub USER_Macro1(Optional Control) ' As IRibbonControl)
ModelessForm.Show vbModeless
End Sub
我在Excel 2013進行了測試,到目前爲止,它甚至似乎不管其他地方看到的Screenupdating = false
問題的工作。
Application.Run爲我做了詭計! (我有一個.xlam加載項,它顯示了WOrkbook_Open上的表單)。 –