我有一个带有一堆框架的用户表单。我不小心把一个复选框掉进了其中的一个框架里,现在哪里也找不到了。它仍然存在,因为我可以用代码设置它的值,但我看不到它。我试着扩展框架并移动框架中的东西(以防它在其中一个控件后面)。我怎么才能把它拉回来呢?
发布于 2018-06-15 01:41:00
这将告诉您复选框在框架中的位置:
Private Sub UserForm_Initialize()
Debug.Print Me.CheckBox1.Left
Debug.Print Me.CheckBox1.Top
End Sub在那之后,问题就是在这个方向上扩展框架并抓住“失控的孩子”。
发布于 2018-06-15 02:10:09
查找具有父级名称和位置的所需控件
您可以使用此示例代码系统地查找任何类型的控件:
Sub AnalyzeCtrls()
' Purpose: Analyze Userform controls
Dim ctrl As MSForms.Control
   Debug.Print "Control                  Parent                          Position" & _
               vbNewLine & String(76, "-")
   For Each ctrl In UserForm1.Controls          ' << change to your userform name
     ' display only "Checkbox" data               ' << change to wanted search type
       If TypeName(ctrl) = "CheckBox" Then Debug.Print ctrlInfo(ctrl)
   Next ctrl
End Sub帮助器函数
Private Function ctrlInfo(ctrl As MSForms.Control) As String
' Purpose: helper function returning userform control information
     ctrlInfo = _
         Left(TypeName(ctrl) & _
         ": " & ctrl.Name & String(20, " "), 20) & vbTab & _
         " .." & IIf(TypeName(ctrl.Parent) = "UserForm", "Me    " & String(15, " "), _
                     Left(TypeName(ctrl.Parent) & ": " & String(10, " "), 10) & _
                           Left(ctrl.Parent.Caption & String(15, " "), 15)) & vbTab & _
         " Top " & Format(ctrl.Top, "# 000") & "/ Left " & Format(ctrl.Left, "# 000")
End Function生成即时窗口的示例
Control                  Parent                          Position
----------------------------------------------------------------------------
CheckBox: CheckBox1      ..UserForm1:MyForm              Top  006/ Left  570显示父控件可帮助您找到丢失的控件,例如框架、多页页面或用户表单本身。
https://stackoverflow.com/questions/50862861
复制相似问题