用计数器选择变量对象

Sgd*_*dva 1 excel vba excel-vba userform

背景:
我使用标准化名称在userform中有一组对象(对于此示例Listbox对象),我想使用计数器循环动态重命名它们. 在此输入图像描述


问题:
如果我要问的是甚至可能的话,我还没想办法,但是,我想确认一下. 解决方法:
到目前为止没有任何内容,就像我说的那样(参考上图)我需要一种方法来设置for循环中对象的值,如下所示:

For CounterItems = 1 To 18 'Hours in Template
ListBox_Time(CounterItems).Value="Dummy" & CounterItems
Next CounterHours
Run Code Online (Sandbox Code Playgroud)

但是,我对如何这样做(或者如果它是可以实现的)毫无头绪.
问题:
有没有办法使用计数器来转换变量/对象?

Ray*_*ian 5

不,您在使用userform时无法编辑名称,您将收到错误382

你想做的就是这个

Option Explicit

Sub test()
    Dim myForm As UserForm
    Set myForm = UserForm1
    Dim myCtrl As Control
    Dim i As Long
    Dim myCount As Long
    myCount = 1
        For Each myCtrl In myForm.Controls
            If TypeName(myCtrl) = "ListBox" Then
                myCtrl.Name = "Dummy" & myCount 'error
                myCount = myCount + 1
            End If
        Next
End Sub
Run Code Online (Sandbox Code Playgroud)

但是当你尝试写入name属性时,你会出错.您可以打印名称或设置其他属性,但据我所知,这不是您可以做的事情.