2012-11-10 57 views
2

有没有办法时,我想这样做:Visual Basic中 - 变量名自动递增/循环

textbox1.text = x + i 
textbox2.text = x + i 
textbox3.text = x + i 

为了例如像这样的吗?

for l = 0 to 2 
    textbox(l) = x + i 
next 
+1

欢迎堆栈溢出。请不要使用回答部分询问后续问题。请编辑您的问题或添加评论给我的答案。我很高兴我的答案适用于您的原始问题。我还没有使用PictureBox控件,所以不知道问题是什么。我注意到的一件事是你在'ImagemPictureBox'中有一个额外的“m”,我想。 –

+0

我认为它应该是'ImagePictureBox.Picture'。 –

+0

是的,我有一个“M”在这,因为这是一个变量,因为IM葡萄牙等等 - > IMAGEM =图像的xD – Cenas

回答

6

假设这些控件是一个窗体里面,这样做:

Private Sub FillTextboxes() 
    Dim i As Long 
    Dim x As Long 

    x = 10 
    For i = 0 To 2 
     Me.Controls("textbox" & i + 1).Text = x + i 
    Next i 
End Sub 
+0

为什么你使用'Long's?这似乎...过度。 (你不必申报'i'提前,无论是。) – Ryan

+1

@minitech根据[MSDN](http://msdn.microsoft.com/en-us/library/office/aa164754%28v=office .10%29.aspx):“VBA将所有整数值转换为Long类型,即使它们被声明为Integer类型。因此,使用Integer变量不再具有性能优势;实际上,Long变量可能稍微快一点因为VBA不必转换它们。“除非你认为这是.Net,否则不确定你的意思是“提前声明”。你为什么要缩进我的代码。这似乎...挑剔。 –

+0

感谢它的工作就好了:d – Cenas