Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何查找丢失的userform控件_Vba_Excel_Userform - Fatal编程技术网

Vba 如何查找丢失的userform控件

Vba 如何查找丢失的userform控件,vba,excel,userform,Vba,Excel,Userform,我有一个带有一堆框架的用户表单。我不小心把一个复选框掉到了其中一个框架中,现在找不到了。它仍然存在,因为我可以用代码设置它的值,但我看不到它。我试着扩展框架,同时移动框架中的东西(以防它落在其中一个控件后面)。如何将其拉出?这将告诉您框中复选框的位置: Private Sub UserForm_Initialize() Debug.Print Me.CheckBox1.Left Debug.Print Me.CheckBox1.Top End Sub 在那之后,问题仅仅是向那个方向展开框架

我有一个带有一堆框架的用户表单。我不小心把一个复选框掉到了其中一个框架中,现在找不到了。它仍然存在,因为我可以用代码设置它的值,但我看不到它。我试着扩展框架,同时移动框架中的东西(以防它落在其中一个控件后面)。如何将其拉出?

这将告诉您框中复选框的位置:

Private Sub UserForm_Initialize()

Debug.Print Me.CheckBox1.Left
Debug.Print Me.CheckBox1.Top

End Sub

在那之后,问题仅仅是向那个方向展开框架并抓住“逃跑的孩子”。

这将告诉您框中复选框的位置:

Private Sub UserForm_Initialize()

Debug.Print Me.CheckBox1.Left
Debug.Print Me.CheckBox1.Top

End Sub

在那之后,问题仅仅是向那个方向扩展框架并抓住“逃跑的孩子”。

找到带有父名称和位置的想要的控件

您可以使用此示例代码系统地定位任何类型的控件:

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
即时窗口的示例结果

Control                  Parent                          Position
----------------------------------------------------------------------------
CheckBox: CheckBox1      ..UserForm1:MyForm              Top  006/ Left  570

显示父控件有助于您在此处查找丢失的控件,例如框架、多页页页或用户表单本身。

查找具有父控件名称和位置的所需控件。

您可以使用此示例代码系统地定位任何类型的控件:

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
即时窗口的示例结果

Control                  Parent                          Position
----------------------------------------------------------------------------
CheckBox: CheckBox1      ..UserForm1:MyForm              Top  006/ Left  570

显示父控件可以帮助您找到丢失的控件,例如框架、多页页面或用户表单本身。

如果按Ctrl+a,您可以看到所有控件的轮廓吗?哈!Ctrl+A显示了它。它已经卷起在框架的顶部。奇怪的是,我试着向各个方向拉伸框架,但我猜它已经固定在那里了。FWIW,
顶部
/
左侧
参数更改也起作用(当我将其重新注册以尝试时),谢谢@DukeSilver-添加了另一种方法来查找隐藏“丢失的孩子”的父控件,包括
TypeName
过滤器,从而在即时窗口中生成结构化信息列表。可以为将来的搜索和文档编制提供帮助:-)@DukeSilver-您能试试我的解决方案吗?如果您觉得我的方法很有用,因为它提供了一个结构化和扩展的信息列表,您将不胜感激。如果您按Ctrl+a,您能看到所有控件的轮廓吗?哈!Ctrl+A显示了它。它已经卷起在框架的顶部。奇怪的是,我试着向各个方向拉伸框架,但我猜它已经固定在那里了。FWIW,
顶部
/
左侧
参数更改也起作用(当我将其重新注册以尝试时),谢谢@DukeSilver-添加了另一种方法来查找隐藏“丢失的孩子”的父控件,包括
TypeName
过滤器,从而在即时窗口中生成结构化信息列表。可以为将来的搜索和文档编制提供帮助:-)@DukeSilver-您能试试我的解决方案吗?如果您觉得我的方法有帮助,我们将非常感谢您的反馈,因为它提供了一个结构化和扩展的信息列表。