2013-03-20 2 views
3

에 따라 사용자 정의 폼 나는 불과 3 일 VBA에 아주 새로운 해요 ...하지만 난 매우 유용하고 사용하기 쉬운 찾았지만 지금은 문제에 직면하고있다. 다른 확인란을 사용하여 사용자 정의 폼을 만들어야하지만 시트의 열 중 하나에서 사용 된 정보를 기반으로 자동으로 추가해야합니다. 저는 For .. Each를 사용할 수 있다고 생각합니다.하지만 다음은 실제로 Checkbox를 채우는 방법을 모르겠습니다. 이것은 내가 지금 가지고있는 유일한 해결책이지만, 나는 하나만 differents 체크 박스를 만들 수 없습니다. 내가 할 필요가추가 확인란은 셀 값

For Each rCell In Range("B1:B" & LastRow) 
    If rCell.Value <> "" Then 
     UserForm1.Controls.Add ("Forms.CheckBox.1") 
    End If 
Next 

한가지 더가 추가되면 체크 박스의 속성을 채우기, 그래서 그 이후의 값으로 작업 할 수 있습니다.

감사합니다. 감사합니다.

답변

0

당신이 필요로하는 교장을 설명하기 때문에이 이전 대답을 한번보십시오.

Add Controls To A Frame

+0

감사합니다, 그러나 이것은 내가 무엇을 찾고 있어요되지 않습니다. 동적 인 방식으로 요소를 추가해야하므로 Form.CheckBox.1의 이름은 Form.CheckBox [i]와 같아야합니다. 그게 제일 처음이야. – hcsnemrebured

5

나는 지금 전에 답을 얻었습니다 확신하지만,이 내 Google 검색에 온 이후, 나는 다른 답변을 게시 할 거라고 생각했다. 사용자 정의 폼에 다음 코드를 넣습니다

Option Explicit 

Private Sub UserForm_Initialize() 

Dim curColumn As Long 
Dim LastRow  As Long 
Dim i   As Long 
Dim chkBox  As MSForms.CheckBox 

curColumn = 1 'Set your column index here 
LastRow = Worksheets("Sheet1").Cells(Rows.Count, curColumn).End(xlUp).Row 

For i = 1 To LastRow 
    Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i) 
    chkBox.Caption = Worksheets("Sheet1").Cells(i, curColumn).Value 
    chkBox.Left = 5 
    chkBox.Top = 5 + ((i - 1) * 20) 
Next i 

End Sub 

당신은 사용자의 특정 요구에 맞게 코드를 수정해야합니다,하지만 당신이 시작하는 것입니다.

0
UserForm1.Controls("Checkbox" & i).Value