如何在用户窗体下面放置命令按钮

时间:2011-11-25 04:29:25

标签: vba

我创建了一个命令按钮,当我点击按钮时,显示userform1并且用户窗体中有一个日历控件,它在屏幕中央弹出,但我希望它位于屏幕中心下方命令按钮。有没有办法说userom1位于按钮下方?

好吧,我已经给出了我的电脑上的轴尺寸及其工作情况,但是当像素发生变化时,它又在某处。

1 个答案:

答案 0 :(得分:0)

我假设一个用户表单上的Command按钮和另一个用户表单上的日历控件。

您没有说您正在使用哪个版本的VBA。我在Excel 2003中对此进行了测试。我知道有更好的解决方案,例如VB 2010。

方法1

你需要第二张表格吗?您可以使用以下命令隐藏控件:

ControlName.Visible = False

并使用

显示
ControlName.Visible = True

方法2

模块中需要一些公共变量:

Public ButLeft As Integer
Public ButHeight As Integer
Public ButTop As Integer
Public Form1Left As Integer
Public Form1Top As Integer

在命令按钮的单击事件中,包括:

' This stores information about the current position of
' Form 1 relative to the active window.
With Me
  Form1Top = .Top
  Form1Left = .Left
End With
' This stores information about the current position of the
' command button relative to the useable part of Form 1.
With Me.CommandButton
  ButTop = .Top
  ButLeft = .Left
  ButLeft = .Height
End With

表格2中包括:

Private Sub UserForm_Activate()

  ' This positions Form 2 relative to the current position
  ' of the command button.  The "+50" is because the stored
  ' values do not allow for the width of Form1's border.
  ' Experiment to get values that look good to you. 
  With Me
    .Top = FormTop + But1Top + But1Height + 50
    .Left = FormLeft + But1Left + 50
  End With

End Sub

使用此代码,无论用户如何移动表单1,表单2都会显示在命令按钮下。