我从上到下搜索了互联网,但我找不到解决方案。在我的Excel工作簿中,我想从Outlook导入联系人。这很好,没有任何问题。我使用Outlook.ActiveWindow.Activate
将GAL置于前台,并使用Outlook.Explorers.Item(1).WindowState = olMinimized
最小化Outlook。我知道这不是一个非常干净的解决方案,但除非没有其他Outlook Windows打开,否则一切正常。
现在我的问题:
当用户有多个打开的Outlook窗口(例如新的邮件对话框等)时,我无法将我的Excel应用程序带回Foreground。联系人的导入仍然可以正常工作。 GAL通过单击按钮进入前景。
我尝试了以下代码片段,但它们并没有真正起作用。
Dim AppTitle As String
AppTitle = Application.Caption
'
'some code
'
AppActivate AppTitle
另一个尝试是模块中的这个功能
Public Declare Function SetForegroundWindow Lib "user32" _
(ByVal hWnd As Long) As Long
在我的按钮功能中调用它
Dim AppXL As Object
Set AppXL = CreateObject("Excel.Application")
'
'some code
'
SetForegroundWindow AppXL.hWnd
我也尝试使用此代码段
Excel.Application.Visible = True
Excel.Application.ActiveWindow.Activate
没有任何帮助。唯一发生的事情是任务栏中闪烁的Excel图标。我希望你能帮助我解决这个问题。
答案 0 :(得分:3)
假设此代码在Excel工作簿中,它只是:
SetForegroundWindow Application.hWnd
而不是创建新的应用程序实例。