【发布时间】:2018-06-04 05:10:51
【问题描述】:
我有一个包含 100 个文本框的用户表单。它们排列成 10 x 10 阵列。文本框有名字
C1_A1 to C1_A10 (first row)
C2_A1 to C2_A10 (second row)
.....
C10_A1 to C10_A10 (tenth row)
如何逐行遍历文本框。 textbox_change() 的代码如下所示。我成功地为一个包含 10 个盒子的表单实现了这一点。但是现在我必须缩放到一个有 100 个盒子的表格,这不再实用。
Private Sub C1_A1_Change()
Dim wt As Double
C1_A1.SetFocus
If IsNumeric(C1_A1.Value) Then
wt = CDbl(C1_A1.Value)
If wt >= 0 And wt <= 1 Then
'do nothing
Else
MsgBox "Enter a number between 0 and 1"
C1_A1.Value = vbNullString
End If
Else
wt = 0
End If
End Sub
'an action button to read all values
Private Sub ReadDataTT1_Click()
Me.C1_A1.Value = Range("Wt!E9").Value
............
Me.C10_A10.Value = Range("Wt!N18").Value
End Sub
'an action button to save all values
Private Sub SaveDataTT1_Click()
If C1A1.Value <> "" Then
Range("Wt!E9").Value = C1_A1.Value
............
Range("Wt!N18").Value = C10_A10.Value
End If
End Sub
【问题讨论】:
-
让工作表检查十个框的每一行,然后宏检查每一行是否完整...
-
对 "_" 前面的人使用循环(比如 RowLabel),在里面,对之后的人使用循环(比如 ColLabel) .然后使用
Me.Controls(RowLabel & "_" & ColLabel)访问它们。 -
非常感谢