带滚动条的Excel userform不会在窗体顶部打开

带滚动条的Excel userform不会在窗体顶部打开,excel,vba,scrollbar,userform,Excel,Vba,Scrollbar,Userform,我试图让我的userform在表单顶部打开,但不管我做了什么尝试,它都会在表单底部打开。我在下面包含了我的UserForm_初始化代码以及表单如何打开的图片 Private Sub UserForm_Initialize() Dim myPath As Variant Application.ScreenUpdating = False Application.DisplayAlerts = False 'ActiveWorkbook.ChangeFileAccess Mode:=xlRe

我试图让我的userform在表单顶部打开,但不管我做了什么尝试,它都会在表单底部打开。我在下面包含了我的UserForm_初始化代码以及表单如何打开的图片

Private Sub UserForm_Initialize()

Dim myPath As Variant

Application.ScreenUpdating = False
Application.DisplayAlerts = False

'ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
Workbooks("ECP Logistics Tool.xlsm").Activate

'I have tried several methods based on my Google attempts to fix this issue:
'Hiring_Validation_Form.ScrollTop = 0
'Hiring_Validation_Form.Scroll (fmScrollActionBegin)
'Neither of these work, the form still opens at the bottom instead of the top.

myPath = ThisWorkbook.Path

Image1.Picture = LoadPicture(myPath & "\Resources\ECP Logo.jpg")

'Set default date for Start Date
Date1 = Workbooks("ECP Logistics Tool.xlsm").Sheets("Lists").Range("M2").Value

Hiring_Validation_Form.DTPicker1.Value = Date1

'Set default date for End Date
    'Change start date to 1st monday after today's date
    Workbooks("ECP Logistics Tool.xlsm").Activate
    Sheets("Lists").Select
    Range("N2").Select
    ActiveCell.FormulaR1C1 = "=TODAY() + 70"
    CurDate = Cells(2, 14).Value
    For i = 1 To 7
        If Weekday(CurDate) <> vbMonday Then
            CurDate = CurDate + 1
        Else
            Range("N2").Select
            ActiveCell.FormulaR1C1 = CurDate
            GoTo exitLoop
        End If
    Next i

exitLoop:

    Date2 = Workbooks("ECP Logistics Tool.xlsm").Sheets("Lists").Range("N2").Value

    Hiring_Validation_Form.DTPicker2.Value = Date2

End Sub
@Bonnie Z,在表单设计中,右键单击带有标签的组合框或列表框,选择培训类型:选择单击属性。将TabIndex设置为0。保存并测试对加载行为的影响。如果它按照您想要的方式工作,请返回并将其他框和按钮设置为1、2、3,而不是将表单从上到下的标签设置为1、2、3。。。等等从我们看到的情况来看,Submit按钮的索引为TabIndex 16。但这取决于表单上实际的第一个框是什么。不确定我们在粘贴中看到了它。请参见下面的我的粘贴,呃,上面的。


@Bonnie Z,在表单设计中,右键单击带有标签的组合框或列表框,选择培训类型:选择单击属性。将TabIndex设置为0。保存并测试对加载行为的影响。如果它按照您想要的方式工作,请返回并将其他框和按钮设置为1、2、3,而不是将表单从上到下的标签设置为1、2、3。。。等等从我们看到的情况来看,Submit按钮的索引为TabIndex 16。但这取决于表单上实际的第一个框是什么。不确定我们在粘贴中看到了它。请参见下面的我的粘贴…,呃,上面。

您将ScrollTop=0放在哪里?试着利用我。而不是雇佣确认表。。如果更改表单名称,我不会介意。哪个控件的Tab Index=0看起来像它的提交按钮?由于该控件在打开后具有焦点,因此表单向下滚动以使其在表单底部可见。我将ScrollTop=0放在上面代码中标记的位置。是否有方法使其不在乎Submit按钮在底部,而仍然在表单顶部打开表单?“提交”按钮将在底部打开是没有意义的,因为在填写表单之前,您不会点击“提交”&您开始在顶部而不是底部填写表单。问题是Tab Index=0!在表单顶部的其他控件上使用Tab Index=0提交按钮索引将自动更改。在设计良好的表单上,选项卡索引通常按用户期望的顺序从左上角到右下角排序。然后你可以通过按Tab键移动字段。不要用鼠标点击,因为那太慢了。你把ScrollTop=0放在哪里?试着利用我。而不是雇佣确认表。。如果更改表单名称,我不会介意。哪个控件的Tab Index=0看起来像它的提交按钮?由于该控件在打开后具有焦点,因此表单向下滚动以使其在表单底部可见。我将ScrollTop=0放在上面代码中标记的位置。是否有方法使其不在乎Submit按钮在底部,而仍然在表单顶部打开表单?“提交”按钮将在底部打开是没有意义的,因为在填写表单之前,您不会点击“提交”&您开始在顶部而不是底部填写表单。问题是Tab Index=0!在表单顶部的其他控件上使用Tab Index=0提交按钮索引将自动更改。在设计良好的表单上,选项卡索引通常按用户期望的顺序从左上角到右下角排序。然后,您可以通过按Tab键power users来移动字段。不要用鼠标单击,因为这太慢了。您应该添加行为的说明,重点放在选项卡索引为0的控件上,必须可见,以便形成滚动。Id我们可以信任滚动条,我们只看到表单的下半部分,因此我们可以假设许多不可见的控件,为了避免意外的fotm清除,提交按钮应该是第二个最后一个选项卡索引清除表单是最后一个。您应该添加行为说明,重点放在选项卡索引为0的控件上,因此表单滚动必须可见。Id我们可以信任滚动条,我们只看到表单的下半部分,因此我们可以假设许多不可见的控件,并避免意外的fotm清除,提交按钮应该是第二个最后一个选项卡索引清除表单是最后一个。