在UserForm移动时隐藏Excel在UserForm后面

时间:2017-05-01 13:30:07

标签: excel vba excel-vba

我想隐藏Userform后面的excel文件。有可能当我用光标移动Userform时,UserForm后面的Excel应用程序也会移动吗?

2 个答案:

答案 0 :(得分:2)

应用程序具有您可以定义的属性

  • 宽度
  • 高度

用过:

Application.Top = 0

在用户表单中的各种事件中玩这个,直到找到你想要的内容。

我强烈建议您学习如何捕获用户表单的值,然后将它们分配给应用程序。

答案 1 :(得分:1)

通过@DougCoats扩展答案 - 将Application.WindowState设置为xlNormal以操纵ApplicationTopLeft属性非常重要请参阅下面的代码 - 您需要在工作簿中加入ModuleUserForm

模块1

Option Explicit

Sub TestForm()

    UserForm1.Show

End Sub

UserForm1

Option Explicit

Private Sub UserForm_Initialize()
    HideApplicationBehindUserForm
End Sub

Private Sub UserForm_Layout()
    HideApplicationBehindUserForm
End Sub

Private Sub HideApplicationBehindUserForm()
    With Application
        .WindowState = xlNormal
        .Top = Me.Top
        .Left = Me.Left
        .Height = Me.Height
        .Width = Me.Width
    End With
End Sub

Initialize事件会在您打开它时隐藏UserForm后面的Excel应用程序。当您使用鼠标移动Layout时,UserForm事件会将应用程序移到UserForm后面。两种情况下的代码都相同 - HideApplicationBehindUserForm

我发现我的Excel有一点问题,即应用程序略微偏离UserForm的边界:enter image description here