我创建了一个命令按钮,当我点击按钮时,显示userform1
并且用户窗体中有一个日历控件,它在屏幕中央弹出,但我希望它位于屏幕中心下方命令按钮。有没有办法说userom1位于按钮下方?
好吧,我已经给出了我的电脑上的轴尺寸及其工作情况,但是当像素发生变化时,它又在某处。
答案 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都会显示在命令按钮下。