我目前有一个更新后事件,该事件在表单中的文本框中循环,如果它们的编号低于某个阈值,则会打开它们的可见性。
Dim i As Long
Dim iMin As Long
Dim iMax As Long
iMin = 1
iMax = Me.txtMeasure.Value
With Me
For i = iMin To iMax
.Controls("V" & i).Visible = True
Next i
End With
文本框被命名为V1, V2, V3...V110
等。"而每个文本框对应的标签被标记为lblV1
、lblV2
、lblV3
、lblV110
等。"当更新后事件打开其可见性时,文本框和标签默认为不可见。代码适用于文本框,但不适用于标签。我注意到,当标签看起来不可见时,切换到设计视图,然后返回到表单视图,标签突然变得可见。有没有一种方法可以调试它,使它们同时可见?
试试这个,它在控件中循环,如果它是textbox
或label
,你可以用它们做你想做的事情,我在这段代码中将它们设置为Visible
。
Dim con As Control
Dim i As Long
Dim iMin As Long
Dim iMax As Long
Dim textBoxArr
Dim j As Long
iMin = 1
iMax = Me.txtMeasure.Value
textBoxArr = Array("V1", "V2", "V3", "V4", "V5", "V6", "V7")
For Each con In Me.Controls
If TypeName(con) = "TextBox" Or TypeName(con) = "Label" Then
For j = 0 To UBound(textBoxArr)
If con.Name = textBoxArr(j) Or con.Name = "lbl" & textBoxArr(j) Then
con.Visible = True: Exit For
End If
Next j
End If
Next con
您只能在代码中添加一行。
Dim i As Long
Dim iMin As Long
Dim iMax As Long
iMin = 1
iMax = Me.txtMeasure.Value
With Me
For i = iMin To iMax
.Controls("V" & i).Visible = True
.Controls("lbl" & i).Visible = True
Next i
End With