我在VBA中有一个包含一些图片的用户窗体。我需要遍历15张名称如下的照片:
imm1,imm2,...,imm15
我为照片创建路径:
dir1 = "c:\..\pi1.jpg"
...
dir15 = "c:\..\pi15.jpg"
我想创建一个循环:
For i = 1 To 15
(imm & i).Visible = True
(imm & i).Picture = LoadPicture(dir & i)
Next i
这样做的正确方法是什么?
答案 0 :(得分:1)
您可以在用户表单的Controls
属性中使用它的名称引用每个图像,如下所示:
Public Sub VisibleImages()
Dim i As Integer
For i = 1 To 15
Me.Controls("imm" & i).Visible = True
Next i
End Sub
注意:如果要在userforms代码模块之外使用该过程,则可能需要将Me
更改为userform的名称。
答案 1 :(得分:1)
我非常喜欢这种语法:
Private Sub CommandButton1_Click()
Dim cCont As Control
For Each cCont In Me.Controls
If TypeName(cCont) = "Image" And VBA.Left$(cCont.Name, 3) = "imm" Then
cCont.Visible = True
cCont.Picture = LoadPicture("c:\..\pi" & VBA.Right$(cCont.Name, Len(cCont.Name) - 3) & ".jpg")
End If
Next cCont
End Sub