我一直试图制作一个包含68个项目的表单,同时通过循环将所有项目放在表单上,但是这个循环不起作用:(有人可以帮助我让这个工作吗?我试过了到处寻找但看不到该怎么做:/
Dim Items(67) As String
For x = 0 To 67
Items(x) = "Ctl" & x
Next
#It goes from 1 here as I manually set up 1 otherwise (x - 1) wont work.
For x = 1 To 67
Form_Home.Items(x).Top = 0
Form_Home.Items(x).Left = (Form_MainScreen.Items(x - 1).Left) + (Form_MainScreen.Items(x - 1).Width)
Form_Home.Items(x).Height = 225
Form_Home.Items(x).Width = 500
Next
谢谢大家:)
答案 0 :(得分:1)
Form_Home.Items 是什么意思?如果你已经在表单中添加了控件,可能会有一个Controls集合,所以你可以迭代它并设置它的属性,假设每个控件都有一个名称 Ctl0,Ctl1,Ctl2 ...... 然后你可以按照以下步骤继续:
Dim ct_name as String
Dim ct_name_before as String
For x = 1 To 67
ct_name_before = "Ctl" & CStr(Cint(x-1))
ct_name = "Ctl" & CStr(x)
Form_Home.Controls(ct_name).Top = 0
Form_Home.Controls(ct_name).Left = (Form_MainScreen.Items(ct_name_before).Left) + _
(Form_MainScreen.Items(ct_name_before).Width)
Form_Home.Controls(ct_name).Height = 225
Next
某些版本的VBA允许您创建共享所有相同名称且具有不同索引的控件数组,然后您可以遍历数组以获取每个控件。