簡體   English   中英

如何在VBA中遍歷相似對象

[英]How to loop through similar object in VBA

我在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

正確的方法是什么?

您可以在用戶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的名稱。

我很喜歡這種語法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM