获取Excel窗口回到前台

我从顶端search互联网到根,但我找不到解决scheme。 在我的Excel工作簿中,我想从Outlook导入联系人。 这工作正常没有任何问题。 我通过使用Outlook.ActiveWindow.Activate获得GAL到前景,并通过使用Outlook.Explorers.Item(1).WindowState = olMinimized最小化Outlook。 我知道这不是一个非常干净的解决scheme,但一切正常,除非没有其他Outlook窗口打开。

现在到我的问题:
当用户有多个打开的Outlook窗口(例如新的邮件对话框等),我不能把我的Excel应用程序回到前台。 联系人的导入仍然正常工作。 GAL通过单击button来到前景。
我尝试了下面的代码片段,但它们并不真正起作用。

  Dim AppTitle As String AppTitle = Application.Caption ' 'some code ' AppActivate AppTitle 

另一个尝试是在模块中的这个function

  Public Declare Function SetForegroundWindow Lib "user32" _ (ByVal hWnd As Long) As Long 

在我的buttonfunction中调用它

  Dim AppXL As Object Set AppXL = CreateObject("Excel.Application") ' 'some code ' SetForegroundWindow AppXL.hWnd 

我也试过使用这个代码片段

  Excel.Application.Visible = True Excel.Application.ActiveWindow.Activate 

没有帮助。 唯一发生的事情是任务栏中闪烁的Excel图标。 我希望你能帮我解决这个问题。

假设这个代码在你的Excel工作簿中,它只是:

  SetForegroundWindow Application.hWnd 

而不是创build一个新的应用程序实例。