VBA-项目中所有控件的列表

索非亚

我收到以下代码的424错误“ object required”。下面的代码目标是打印VBA项目中所有控件的列表。为什么会出现此424错误?

Public Sub List_Controls_All_Userforms()

    '<<<< Ojective:  I want to create a list of all controls in my project, including Userform.Names.


    Dim individualUserform As Object
    Dim controlItem As Control
    Dim rowNumber As Long
    Dim cell As Range

    For Each cell In Sheets("TabNames").Range("H1:H50")   '<<<<< 50 userform names.
        Set individualUserform = cell.Value               '<<<<< Error 424 object required. <<< Calling each form by name like this is wrong??
        For Each controlItem In individualUserform.Controls
          rowNumber = rowNumber + 1
          Sheets("TabControls").Cells(rowNumber, 1).Value = individualUserform.Name & "." & controlItem.Name
        Next controlItem
    Next cell
End Sub

在此处输入图片说明

在此处输入图片说明

再次在我的原始文本中添加了屏幕快照,而不是在Rajesh的回复中添加了屏幕快照(由于某些原因屏幕快照没有上传到那里)。

病毒

不,我担心那是不正确的。但是,您可以使用/循环VBComponents工作簿中的集合VBProject


如果要遍历指定的范围,因为您写下了用户窗体的名称,请尝试:

Public Sub List_Controls_All_Userforms()

Dim controlItem As Control
Dim rowNumber As Long
Dim cell As Range

For Each cell In Sheets("TabNames").Range("H1:H50")
    For Each controlItem In ThisWorkbook.VBProject.VBComponents(cell).Designer.Controls
        rowNumber = rowNumber + 1
        Sheets("TabControls").Cells(rowNumber, 1).Value = cell & "." & controlItem.Name
    Next controlItem
Next cell

End Sub

如果您不想在一个范围内写下所有用户窗体名称并对其进行循环,则也可以尝试循环该VBComponents集合并检查它们的.Type(3 = UserForm),如下所示:

Public Sub List_Controls_All_Userforms()

Dim controlItem As Control
Dim rowNumber As Long
Dim obj as object

For Each obj In ThisWorkbook.VBProject.VBComponents
    If obj.Type = 3 Then
        For Each controlItem In ThisWorkbook.VBProject.VBComponents(obj.Name).Designer.Controls
            rowNumber = rowNumber + 1
            Sheets("TabControls").Cells(rowNumber, 1).Value = obj.Name & "." & controlItem.Name
        Next controlItem
    End If
Next obj

End Sub

请注意,按照答案,这需要附加的安全权限> Excel选项>信任中心>宏设置>信任对VBA Project对象模型的访问。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CLion项目中所有错误的列表

来自分类Dev

列出 VBA 中所有不同的分发选项

来自分类Dev

VBA 更改文件夹中所有文件的名称

来自分类Dev

删除所有VBA监视项目

来自分类Dev

VBA / Excel动态列表控件

来自分类Dev

Webpack:如何编译项目中所有较少的文件

来自分类Dev

Play项目中所有HTML的全局CSS

来自分类Dev

获取项目中所有文件的基本路径?

来自分类Dev

django项目中所有自动场的重置顺序

来自分类Dev

修复了项目中所有未定义的常量

来自分类Dev

SublimeText:更改项目中所有归档文件的行尾

来自分类Dev

VBA词典-添加项目会覆盖所有项目

来自分类Dev

替换列表中子列表中所有出现的项目

来自分类Dev

使用VBA保护VBA项目

来自分类Dev

带有BeautifulSoup的queryset中所有项目的列表

来自分类Dev

获取有关VBA中所有单元格更改的通知

来自分类Dev

如何汇总列表中所有共享特定属性的项目?

来自分类Dev

选择至少匹配列表中所有项目的记录

来自分类Dev

抓住文件夹中所有文件的VBA代码找不到文件

来自分类Dev

抓住文件夹中所有文件的VBA代码未找到文件

来自分类Dev

Excel匹配范围... VBA中所有字符串中的最后一个单词

来自分类Dev

宏/ VBA代码,用于列出和打印工作簿中所有宏的名称和代码

来自分类Dev

使用VBA清除工作表中所有不包含公式的单元格?

来自分类Dev

使用 VBA 替换列中所有单元格的公式中的工作表名称

来自分类Dev

如何编写 VBA 代码以删除工作簿中所有工作表的特定列?

来自分类Dev

VISIO VBA 获取一组中所有形状的集合

来自分类Dev

如何使用word vba拆分Microsoft Word表格中所有垂直合并的单元格?

来自分类Dev

在VBA中查找列表的所有可能组合

来自分类Dev

VBA从查找列表返回所有匹配项

Related 相关文章

  1. 1

    CLion项目中所有错误的列表

  2. 2

    列出 VBA 中所有不同的分发选项

  3. 3

    VBA 更改文件夹中所有文件的名称

  4. 4

    删除所有VBA监视项目

  5. 5

    VBA / Excel动态列表控件

  6. 6

    Webpack:如何编译项目中所有较少的文件

  7. 7

    Play项目中所有HTML的全局CSS

  8. 8

    获取项目中所有文件的基本路径?

  9. 9

    django项目中所有自动场的重置顺序

  10. 10

    修复了项目中所有未定义的常量

  11. 11

    SublimeText:更改项目中所有归档文件的行尾

  12. 12

    VBA词典-添加项目会覆盖所有项目

  13. 13

    替换列表中子列表中所有出现的项目

  14. 14

    使用VBA保护VBA项目

  15. 15

    带有BeautifulSoup的queryset中所有项目的列表

  16. 16

    获取有关VBA中所有单元格更改的通知

  17. 17

    如何汇总列表中所有共享特定属性的项目?

  18. 18

    选择至少匹配列表中所有项目的记录

  19. 19

    抓住文件夹中所有文件的VBA代码找不到文件

  20. 20

    抓住文件夹中所有文件的VBA代码未找到文件

  21. 21

    Excel匹配范围... VBA中所有字符串中的最后一个单词

  22. 22

    宏/ VBA代码,用于列出和打印工作簿中所有宏的名称和代码

  23. 23

    使用VBA清除工作表中所有不包含公式的单元格?

  24. 24

    使用 VBA 替换列中所有单元格的公式中的工作表名称

  25. 25

    如何编写 VBA 代码以删除工作簿中所有工作表的特定列?

  26. 26

    VISIO VBA 获取一组中所有形状的集合

  27. 27

    如何使用word vba拆分Microsoft Word表格中所有垂直合并的单元格?

  28. 28

    在VBA中查找列表的所有可能组合

  29. 29

    VBA从查找列表返回所有匹配项

热门标签

归档