2016-01-11 81 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 
相关问题