在VBA之间交换+在决斗屏幕上居中

时间:2017-03-17 01:18:15

标签: forms vba

我正在努力让我的Main Menu和后续表单一起正常运行。我目前正在发生的是在第二次单击Employee_Form按钮时,表单会重新加载,然后跳转到QueryClose Sub的末尾并因某种原因关闭表单!

我有以下代码:

当我点击相关按钮加载employee_Form时会激活。

Private Sub EmpChecker_Click()
    Main.Hide
    Employee_Form.Show False

End Sub

然后当我关闭员工表格时激活。

Private Sub UserForm_QueryClose()
        Employee_Form.Hide
        Main.Show
End Sub

正如我所说,当我再次单击EmpChecker按钮时,表单将显示在调试中,但随后跳转到上面代码的末尾并关闭表单。

有什么想法吗?我对于为什么会发生这种情况有点了解。#

我的下一个问题是关于表格的居中。我们在连接到一台计算机的工作中使用了4个屏幕我已经尝试了每个表单的属性中的所有4个选项,但是我使用表单的每个选项似乎都在第二个屏幕中居中。它很烦人!无论如何只是让它们加载到Excel所在的默认屏幕中??

1 个答案:

答案 0 :(得分:0)

尝试删除False参数

Private Sub EmpChecker_Click()
    Main.Hide
    Employee_Form.Show
End Sub

要使UserForm居中,没有自动方式,您需要使用一些代码。

With UserForm1
  .StartUpPosition = 0
  .Left = Application.Left + (0.5 * Application.Width) - (0.5 * .Width)
  .Top = Application.Top + (0.5 * Application.Height) - (0.5 * .Height)
  .Show
End With

要在右侧屏幕中找到您的用户表单,您可以询问当前窗口位置。

希望这有帮助。