Vba Userform没有';单击工作表后才会显示
我通过点击按钮加载一个用户表单,在我点击工作簿之前,这个用户表单不会显示在前面。Excel图标一直闪烁,当我单击工作表时,闪烁停止,用户窗体出现 可能的原因是什么。这很奇怪,因为相同的代码适用于其他用户表单Vba Userform没有';单击工作表后才会显示,vba,excel,Vba,Excel,我通过点击按钮加载一个用户表单,在我点击工作簿之前,这个用户表单不会显示在前面。Excel图标一直闪烁,当我单击工作表时,闪烁停止,用户窗体出现 可能的原因是什么。这很奇怪,因为相同的代码适用于其他用户表单 FormattingForm.StartUpPosition = 0 FormattingForm.Left = Application.Left + (0.5 * Application.Width) - (0.5 * NewReportEnt
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
这真的取决于你如何称呼你的表格。在您的情况下,最便宜、最脏的解决方案如下:
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中表单的名称:
如果您不喜欢脏兮兮,并且了解一些OOP,请尝试以下方法之一:
或者在VBA中使用旧的肮脏技巧,在表单中编写代码并在那里调用。这可能与打开另一个应用程序有关。对我来说,是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)
请尝试
FormattingForm.Show vbModal
代码在哪里?在类中、模块中、工作表中或表单内部?尝试使用以下代码将表单强制到前面:FormattingForm.ZOrder 0。@Vityata代码位于模块内部。只需将3条定位语句注释一次,只留下show,会发生什么?它说,用户定义的类型不是defined@Sid29-这是怎么说的&在哪里说的?很抱歉不清楚,它在新的UserForm1变量上说的declaration@Sid29这将是表单类的名称,即formatingform
。你不应该复制/粘贴答案,所以在不理解发生了什么的情况下。。。也就是说,我建议在编写VBA时避免将作为新的和拆分声明与赋值,特别是如果您是VBA新手的话。@Sid29-现在我明白了。UesrForm1
是表单的名称。看看吧,我已经更新了答案。它是VBEditor中新窗体的默认名称。