我有一个弹出表单的Excel加载项。如果用户填写了一些值并单击“应用”按钮,则值将正确发送到基础工作表并关闭弹出窗体。但是,如果用户点击“取消”,则会弹出一个消息框,验证用户是否要取消。单击“是”会导致弹出窗体关闭,但也会将Excel发送到先前活动的窗口后面 - 非常类似于按Alt-Tab。这不好!
是否有人对如何将Excel放在首位有任何想法?
谢谢!
兰迪
答案 0 :(得分:0)
你可以把它放在消息框ActiveWindow.ActivatePrevious
之后
并用
Debug.Print ActiveWindow.Caption
ActiveWindow.ActivatePrevious
Debug.Print ActiveWindow.Caption
答案 1 :(得分:0)
我在ActiveWindow / ActiveView上查找了各种变体,但找不到任何适用的变体。最后,我绕过Mulberry灌木丛拿出来:
IntPtr excelWindow = excelWindow = SpreadsheetApplicationFactoryBase.TheExcelApp.ExcelWin32Window.Handle;
Win32.SetActiveWindow(excelWindow);
丑陋,但它确实有效。工厂是一个创建/返回Excel实例的小类。
我非常感谢输入。
兰迪