背景:
我在用户表单中有一个使用标准化名称的对象集合(对于此示例列表框对象),我想使用计数器循环动态重命名它们。
问题:
如果我要问的问题是否可能,我还没有想出办法,但是,我想确认一下。
解决办法:
到目前为止,没有什么,就像我说的(引用上图)我需要一种方法来设置 for 循环中对象的值,如下所示:
For CounterItems = 1 To 18 'Hours in Template
ListBox_Time(CounterItems).Value="Dummy" & CounterItems
Next CounterHours
但是,我对如何做到这一点(或者是否可以实现)一无所知。
问题:
有没有办法使用计数器来转换变量/对象?
最佳答案
不,您不能在使用用户窗体时编辑名称,您将得到 error 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
但是当您尝试写入 name 属性时会出错。您可以打印名称或设置其他属性,但据我所知,这不是您可以做的事情。
关于excel - 用计数器选择变量对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39986941/