2016-01-11 77 views
0

我得到了一個帶有六個複選框的用戶窗體,名稱爲chk1,chk2,...,chk6,我需要瀏覽並列出標記的窗體。我希望它們一個接一個地列出來,如果有四個標記的框,這些框的標題將在A1:A4中列出(即使它不是標記的四個第一個框)。在VBA中使用字符串作爲對象名稱

我曾嘗試這樣的代碼:

Dim i As Integer, n, As Integer 
    n = 0 
    For i = 1 To 6 
    strChkName = "chk" & i 
    If strChkName.Value Then 
    Cells(1+n, 2) = strChkName.Caption 
    n = n + 1 
    End If 
Next i 

然而,這是行不通的。可能是因爲字符串和.Value的組合。我似乎無法找到任何關於此事的信息。它甚至有可能做到嗎?

+2

...控件( 「名」)... –

+1

更重要的一點'如果控件( 「CHK」 &I).value的Then' –

+0

謝謝非常,這個伎倆...... – Noceo

回答

2

使用Nathan和Scott的意見,我設法使用VBA中的Controls()函數解決了這個問題。用在我的代碼,它看起來像這樣:

Dim i As Integer, n, As Integer 
    n = 0 
    For i = 1 To 
    If Controls("chk" & i).Value Then 
     Cells(1+n, 2) = Controls("chk" & i).Caption 
     n = n + 1 
    End If 
Next i 
相關問題