【发布时间】:2013-12-20 12:47:56
【问题描述】:
用户将首先输入成员数量。如果用户输入 1 个成员,则只会出现 1 个文本框供用户输入。如果用户输入 10 个成员,则将显示所有 10 个文本框。它适用于 If Else,但对我来说做 10 次很乏味。我不知道如何将它从 If Else 更改为 For Loop
'Using If Else
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Select Case txtNoMember.Value
Case Is = 1
txtMember01.Visible = True
txtMember02.Visible = False
txtMember03.Visible = False
txtMember04.Visible = False
txtMember05.Visible = False
txtMember06.Visible = False
txtMember07.Visible = False
txtMember08.Visible = False
txtMember09.Visible = False
txtMember10.Visible = False
Case Is = 2
txtMember01.Visible = True
txtMember02.Visible = True
txtMember03.Visible = False
txtMember04.Visible = False
txtMember05.Visible = False
txtMember06.Visible = False
txtMember07.Visible = False
txtMember08.Visible = False
txtMember09.Visible = False
txtMember10.Visible = False
Case Is = 3
txtMember01.Visible = True
txtMember02.Visible = True
txtMember03.Visible = True
txtMember04.Visible = False
txtMember05.Visible = False
txtMember06.Visible = False
txtMember07.Visible = False
txtMember08.Visible = False
txtMember09.Visible = False
txtMember10.Visible = False
Exit Sub
End Select
End Sub
'Using Loop
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim rStartAS As Long
Dim rEndAS As Long
rEndAS = CLng(txtNoMember.Value)
For rStartAS = 1 To rEndAS
Controls("txtMember" & Format(rStartAS, "00")).Visible = True
Next
End Sub
【问题讨论】: