excel userform在任务栏中显示延迟(第二次激活)

时间:2015-04-07 08:11:47

标签: excel vba taskbar userform

我有一张包含6个用户表单的Excel表格,我希望能够在任务栏中选择并激活。

我使用了以下代码,我在另一个帖子中找到了:

Private Sub UserForm_Activate()

Dim lFrmWndHdl As Long
Dim lStyle As Long

lFrmWndHdl = FindWindowA(vbNullString, Me.Caption)
lStyle = GetWindowLong(lFrmWndHdl, GWL_STYLE)
lStyle = lStyle Or WS_SYSMENU
lStyle = lStyle Or WS_MINIMIZEBOX
lStyle = lStyle Or WS_MAXIMIZEBOX
SetWindowLong lFrmWndHdl, GWL_STYLE, (lStyle)
lStyle = GetWindowLong(lFrmWndHdl, GWL_EXSTYLE)
lStyle = lStyle Or WS_EX_APPWINDOW
SetWindowLong lFrmWndHdl, GWL_EXSTYLE, lStyle
DrawMenuBar lFrmWndHdl
AppActivate ("Microsoft Excel")
ThisWorkbook.Application.Visible = False

End Sub

这有效,但有延迟。 当第一个userform显示时,没有任务栏图标。单击按钮并显示第二个用户表单后,仍然没有项目。关闭第二个用户窗体并返回第一个用户窗体后,第一个用户界面的图标就会显示出来。

我尝试过使用一些" DoEvents"在线之间,但仍然没有帮助。 所有userforms都是showmodal false。 它似乎需要在结束子后进行某种更新。

任何想法?

0 个答案:

没有答案