在用户窗体中动态构建数组 (VBA)
Dynamically building an array in a UserForm (VBA)
我正在尝试根据是否从另一个数组勾选一组复选框(在用户窗体中)来构建一个数组。所以目前的代码是:
Dim MyArray(10) As Integer
MyArray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Dim IntrnlArray() As Variant
For i = 1 To 10
If Me.Controls("CheckBox" & i).Value = True Then
' some code I cant figure out!
End If
Next
生成的(可能更小的)新数组 IntrnlArray() 将在别处使用。因此,新数组将包含已勾选复选框的数量。然后这些数字将用于其他地方的进一步计算,而不是告诉用户哪个复选框已被勾选。
任何帮助将不胜感激!!!
不太确定你到底想要什么,但我想这就足够了:
Dim IntrnlArray() As boolean
For i = 1 To 10
redim IntrnlArray(i)
IntrnlArray(i) = nz(Me.Controls("CheckBox" & i).Value,false)
Next
您不需要 2 个数组。此代码会将每个复选框的值(true 或 false)分配给数组的相应元素
由于@Mr-Nemo 在评论中提出问题,我还提供了一个使用集合的示例:
Public Sub UsingCollections()
Dim MyCollection As New Collection
For i = 1 To 10
If Me.Controls("CheckBox" & i).Value = True Then
MyCollection.Add i
End If
Next i
End Sub
我正在尝试根据是否从另一个数组勾选一组复选框(在用户窗体中)来构建一个数组。所以目前的代码是:
Dim MyArray(10) As Integer
MyArray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Dim IntrnlArray() As Variant
For i = 1 To 10
If Me.Controls("CheckBox" & i).Value = True Then
' some code I cant figure out!
End If
Next
生成的(可能更小的)新数组 IntrnlArray() 将在别处使用。因此,新数组将包含已勾选复选框的数量。然后这些数字将用于其他地方的进一步计算,而不是告诉用户哪个复选框已被勾选。 任何帮助将不胜感激!!!
不太确定你到底想要什么,但我想这就足够了:
Dim IntrnlArray() As boolean
For i = 1 To 10
redim IntrnlArray(i)
IntrnlArray(i) = nz(Me.Controls("CheckBox" & i).Value,false)
Next
您不需要 2 个数组。此代码会将每个复选框的值(true 或 false)分配给数组的相应元素
由于@Mr-Nemo 在评论中提出问题,我还提供了一个使用集合的示例:
Public Sub UsingCollections()
Dim MyCollection As New Collection
For i = 1 To 10
If Me.Controls("CheckBox" & i).Value = True Then
MyCollection.Add i
End If
Next i
End Sub