excel用户窗体在任务栏中显示延迟(第二次激活)

我有一个Excel工作表,有6个用户表单,我希望能够在任务栏中select和激活。

我使用了下面的代码,我在另一个线程中发现:

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 

这工作,但延迟。 当第一个用户窗体显示时,没有任务栏图标。 点击一个button并显示第二个用户表单后,仍然没有任何项目。 closures第二个用户窗体并返回到第一个窗体后,显示第一个用户窗体的图标。

我尝试使用行之间的一些“DoEvents”,但仍然没有帮助。 所有的用户表单都是showmodal false。 似乎需要在end sub之后进行某种更新。

任何想法?

Interesting Posts