런타임 중에 생성 될 CommandButton
의 코드를 만들어야합니다. 이 명령 단추는 사용자 데이터를 기반으로하기 때문에 동적입니다.런타임 중에 생성 된 명령 단추 코드가 작동하지 않습니다. [Excel VBA]
Private Sub UserForm_Activate()
Dim ctlTXT As Control
For RevNo = 1 To RevCounter
Set ctlTXT = Me.Controls.Add("Forms.CommandButton.1")
ctlTXT.name = RevNo
ctlTXT.Caption = Sheet4.Range("D" & RevNo + 4).value
ctlTXT.Left = 18
ctlTXT.Height = 18: ctlTXT.Width = 72
ctlTXT.Top = 15 + ((RevNo - 1) * 25)
Next
Me.Height = (RevNo * 17) + 50
ReDim Preserve cmdArray(1 To RevNo)
Set cmdArray(RevNo).CmdEvents = ctlTXT
Set ctlTXT = Nothing
End Sub
클래스 모듈 코드
Private Sub CmdEvents_Click()
Dim i As Integer
i = CmdEvents.name
RevisionFormPrevious.LblResponsible.Caption = Sheet4.Range("C" & i +4).value
RevisionFormPrevious.LblEdition.Caption = Sheet4.Range("D" & i + 4).value
RevisionFormPrevious.LblTelNo.Caption = Sheet4.Range("E" & i + 4).value
RevisionFormPrevious.LblFeatures.Caption = Sheet4.Range("D" & i + 4).value
RevisionFormPrevious.Features.value = Sheet4.Range("F" & i + 4).value
Load RevisionFormPrevious
RevisionFormPrevious.Show
End Sub
생성 버튼을 하나 이상있는 경우 문제는이다, 코드 만 작동
마지막 버튼이 생성되었습니다. 첫 번째와 두 번째 버튼을 클릭하면 아무 일도 없었습니다.
'RevCounter'가 선언되고, 채워지고, 호출 될 때 그 값은 무엇입니까? –
클래스 이름은 무엇입니까? 귀하의'클래스'코드에서 최상위'Public WithEvents CmdEvents As MSForms.CommandButton'에 추가해야합니다. 그런 다음'Sub'에서'Dim ctlTXT As As MSForms.CommandButton'을 사용하여 정의해야합니다. –
@MarkFitzgerald RevCounter is 다른 모듈에서 공개로 선언되었습니다. 호출 할 때 사용할 수있는 값의 합계는 –