在我单击工作表之前,Userform不会出现

时间:2018-01-19 14:46:18

标签: vba excel-vba excel

我正在通过单击按钮加载用户窗体,并且在我单击工作簿之前,此用户窗体未显示在前面。 Excel图标一直闪烁,当我点击工作表时,闪烁停止并显示用户窗体。

可能是什么原因。这很奇怪,因为相同的代码适用于其他用户表单。

FormattingForm.StartUpPosition = 0
FormattingForm.Left = Application.Left + (0.5 * Application.Width) 
                      - (0.5 * NewReportEntry.Width)
FormattingForm.Top = Application.Top + (0.5 * Application.Height) 
                     - (0.5 * NewReportEntry.Height)    
FormattingForm.Show

2 个答案:

答案 0 :(得分:2)

这取决于你如何称呼你的表格。在你的情况下,最便宜的&最脏的解决方案是这样的:

Public Sub TestMe()

    Dim FormattingForm As New UserForm1
    FormattingForm.StartUpPosition = 0
    FormattingForm.Left = Application.Left + (0.5 * Application.Width)
    FormattingForm.Top = Application.Top + (0.5 * Application.Height)
    FormattingForm.Show

End Sub

UserForm1是VBEditor中表单的名称:

enter image description here

如果您不喜欢弄脏并且了解一些OOP,请尝试以下方法之一: https://www.vitoshacademy.com/vba-the-perfect-userform-in-vba/ https://rubberduckvba.wordpress.com/2017/10/25/userform1-show/

或者在VBA中使用旧的技巧,在表单中编写代码并在那里调用它。

答案 1 :(得分:0)

这可能与打开另一个应用程序有关。对我来说,那是MS Word。

当我在打开Word后打开表单时,Excel会按照您上面的描述进行反应。它会闪烁,并且只有在单击MS Excel之后我才能看到该表格。

Set WdDoc = WdApp.Documents.Open(WdDocPathOpen, ReadOnly:=True)
frmLeaseType.Show

当我在打开Word之前启动表单时,它会按预期运行。

frmLeaseType.Show
Set WdDoc = WdApp.Documents.Open(WdDocPathOpen, ReadOnly:=True)