Vba 调用对象时是否可以包含变量

Vba 调用对象时是否可以包含变量,vba,for-loop,Vba,For Loop,我有一个代码,可以在用户表单上放置多个名称框和标签。代码非常重复,但我不知道如何创建一个for循环来改变我关注的对象 我尝试使用对象名称中包含的变量创建循环,如: 我。盒子(一)。顶部 (我的所有方框均命名为方框1至方框7) 我的代码是这样的: Me.Box1.Top = hauteur / 4 Me.Box1.Left = espace Me.Label1.Top = Me.Box1.Top - 2 * hb

我有一个代码,可以在用户表单上放置多个名称框和标签。代码非常重复,但我不知道如何创建一个for循环来改变我关注的对象

我尝试使用对象名称中包含的变量创建循环,如:

我。盒子(一)。顶部

(我的所有方框均命名为方框1至方框7)

我的代码是这样的:

 Me.Box1.Top = hauteur / 4                  
 Me.Box1.Left = espace                      
 Me.Label1.Top = Me.Box1.Top - 2 * hbox      
 Me.Label1.Left = Me.Box1.Left               

 Me.Box2.Top = hauteur / 4
 Me.Box2.Left = (2 * espace) + lbox
 Me.Label2.Top = Me.Box2.Top - 2 * hbox
 Me.Label2.Left = Me.Box2.Left

 Me.Box3.Top = hauteur / 4
 Me.Box3.Left = 3 * espace + 2 * lbox
 Me.Label3.Top = Me.Box3.Top - 2 * hbox
 Me.Label3.Left = Me.Box3.Left
等等


我正在为我正在做的循环类型寻找正确的语法

您需要使用controls集合,它将接受字符串索引

for i = 1 to 7 

    with Me.controls("Box" & i)
        .Top = hauteur / 4                  
        .Left = espace                      
     Me.controls("Label" & i).Top = .Top - 2 * hbox      
     Me.controls("Label" & i).Left = .Left  
    end with 

next i

你的循环是
x
,但你在块中使用的是
i
。哎哟-很高兴有人醒了-很遗憾不是我:-)更正了,许多感谢者注意到,保持一个代码库,其中一个表单有几十个控件,它们都有默认的“[ControlType][Number]”名称,这是一个非常棘手的问题。考虑使用有意义的名称,例如<代码> FiestNAMBox < /代码>,而不是<代码> TrimBox 37 < /Cord>
for i = 1 to 7 

    with Me.controls("Box" & i)
        .Top = hauteur / 4                  
        .Left = espace                      
     Me.controls("Label" & i).Top = .Top - 2 * hbox      
     Me.controls("Label" & i).Left = .Left  
    end with 

next i