Vba 使用“属性”窗口标识窗体上的控件

Vba 使用“属性”窗口标识窗体上的控件,vba,excel,userform,Vba,Excel,Userform,在窗体上选择控件后,在“属性”窗口的顶部显示控件的名称和类型,并且在下面的下拉菜单上有一个包含更多控件的列表。如果我单击其中一个列表项,它将选择表单上的该控件 1) 这个下拉菜单的正确名称是什么 2) 什么决定了哪些控件出现在下拉列表上 3) 如何使任何给定控件出现在下拉列表中?i、 在一张非常繁忙的表格上,我知道我在某个地方有一定的控制权,但我看不到它。我想在下拉菜单中选择它,这样就可以知道它的位置,但我不知道如何在该菜单中找到它。我称之为属性窗口下拉菜单。这些控件似乎是以层次/轮廓的方式显示

在窗体上选择控件后,在“属性”窗口的顶部显示控件的名称和类型,并且在下面的下拉菜单上有一个包含更多控件的列表。如果我单击其中一个列表项,它将选择表单上的该控件

1) 这个下拉菜单的正确名称是什么

2) 什么决定了哪些控件出现在下拉列表上


3) 如何使任何给定控件出现在下拉列表中?i、 在一张非常繁忙的表格上,我知道我在某个地方有一定的控制权,但我看不到它。我想在下拉菜单中选择它,这样就可以知道它的位置,但我不知道如何在该菜单中找到它。

我称之为属性窗口下拉菜单。这些控件似乎是以层次/轮廓的方式显示的,尽管并不总是直观的

例如,我将引用一个具有框架、多页和Commandbutton控件的表单,我将其称为“顶级”控件

有两个级别的控件选择:一个级别的控件由亮点画边框,另一个级别的控件由暗散列标记边框。我将第一个称为“激活”,第二个称为“选择”。您可以通过切换到控件或在属性窗口下拉列表中选择控件来“激活”控件。您可以“选择”它,方法是:在其上单击鼠标右键,然后单击“回车”,或者在其边框内单击鼠标右键。(如果通过在“属性窗口”下拉列表中选择某个控件来激活该控件,则单击“回车”将不会选择该控件。)

当您第一次选择Userform时,它将显示在下拉列表中。单击下拉列表时,将列出三个顶级控件。如果通过在下拉列表中选择多页来激活多页,则您的下拉选择不会更改。如果您选择多页(如上所述)多页,则它是当前活动页,并且该页上的控件将列出。用户表单本身不会被列出。如果以相同的方式选择框架,您将得到类似的结果:框架及其顶级控件将被列出,而用户表单将不被列出

我认为浏览复杂表单的最佳方式是使用选项卡。如果选择了表单并开始创建选项卡,则将遍历所有顶级控件。单击Enter键将“进入”控件。如果该控件具有子控件(例如,多页),则您可以通过它们进行制表。在没有子控件的控件上按Enter键将使该控件处于编辑模式。例如,在激活Commandbutton的情况下按Enter键将使您处于标题编辑模式

如果您在具有子控件(如框架)的控件“内部”,则可以通过子控件进行制表。在所有子控件中单击Tab键后,单击Tab键将返回一个级别,例如,将选择Commandbutton

请注意,您也可以通过按Esc键“返回”到上一级。因此,如果按钮处于编辑模式,Esc将使您回到仅选择按钮的状态。如果已在框架内选择控件,则Esc将选择该框架。多次按Esc键将返回到根级别,在该级别中,表单本身被选中

直到你的问题激发我去调查,我才知道这其中的大部分,所以谢谢你帮助我学习!这是一个让人困惑的话题,所以我希望我的文章有点清晰。

讲述OP的要点
  • 属性窗口下拉菜单的正确名称是什么?

    • 对象框

      对象框列出当前选定的对象。仅对象来自 活动窗体是可见的。如果选择多个对象,则属性 基于选定的第一个对象,对象及其设置的公用项, 出现在属性列表选项卡上。
      资料来源:

    • 或者可能是属性对象框,以区别于编码对象框

      对象框是位于视图左上角的列表框 窗口,该窗口列出了要将代码发送到的窗体和窗体中的控件 已附加,或位于属性窗口顶部的列表框 它列出了表单及其控件。
      资料来源:

  • 什么决定了哪些控件出现在下拉列表中?

    • 答案有很多种,但我认为容器是你问题的关键;容器是可以容纳其他对象的对象
      • 如果对象是容器,则对象框将仅列出所选对象及其包含的每个对象;它不会列出容器外任何子容器或对象的内容 示例:用户表单、框架和工作表
      • 如果所选对象不是容器,则对象框列出父容器和父容器内的对象;它不会列出父容器之外的任何子容器或对象的内容
  • 如何使任何给定控件出现在下拉列表中?

    • 知道您的容器在哪里以及它们包含什么,我必须在稍后重新讨论这个答案。不合时宜

  • 已接受答案的修正点 这是不准确的:

    • 如果通过在“属性窗口”下拉列表中选择某个控件来激活该控件,则单击“回车”将不会选择该控件
    是的,确实如此,问题只是焦点问题

    有焦点的窗口是接收击键的窗口;或者,要使用答案中的术语,属性窗口必须具有焦点才能“激活”控件,对象窗口必须具有焦点才能激活控件