2011-09-15 33 views
0

我有一個彈出窗體的Excel加載項。如果用戶填寫某些值並單擊「應用」按鈕,則值將正確發送到基礎工作表,並彈出窗體關閉。但是,如果用戶點擊「取消」,彈出的消息框會驗證用戶是否想要取消。單擊「是」會導致彈出窗體關閉,但也會將Excel發送到之前活動的窗口後面 - 非常像按Alt-Tab。不是很好!Excel表格關閉時,Excel插件將表格發送到背景

有沒有人有任何關於如何保持Excel的概念?

謝謝!

蘭迪

回答

0

我看了上的ActiveWindow /有效收視種種變化,但沒有找到任何適用的。最後,我繞着Mulberry布什想出了這個:

 IntPtr excelWindow = excelWindow = SpreadsheetApplicationFactoryBase.TheExcelApp.ExcelWin32Window.Handle; 
     Win32.SetActiveWindow(excelWindow); 

醜,但它的作品。工廠是一個創建/返回Excel實例的小類。

我非常欣賞輸入。

蘭迪

+0

我仍然想知道爲什麼Yes/No確認框將整個應用程序發送到後臺。這對我來說沒有任何意義。 – EoRaptor013

0

您可以在消息框中ActiveWindow.ActivatePrevious 和測試後,把這個權與

Debug.Print ActiveWindow.Caption 
ActiveWindow.ActivatePrevious 
Debug.Print ActiveWindow.Caption 
+0

我真的很笨嗎?我沒有ActiveWindow,或者至少,IntelliSense無法識別。或者,這僅僅是你實例化的簡寫嗎? – EoRaptor013

+0

智能感知讓它彈出了我......也許你可以嘗試'Application.ActiveWindow'。雖然這很奇怪。如果我再回到Windows機器上,我會再試一次。 – Brad

+0

是的,剛剛確認。如果我開始輸入「activew」,然後按Ctrl +空格完成它。不明確附加到對象。 – Brad