超难问题,不定层多重循环!
如图所示,list里可以让用户输入一项的最小值和最大值
然后枚举所有行的组合,而每行的取值范围就是最大值和最小值之间
也就是说枚举list所有行里的数据组合,每行只取一个值,并且要每一个值都要取一遍
比如按我图里所输入的数据,那么所有可能的组合结果应该是这样的
2 4 6
2 4 7
2 5 6
2 5 7
3 4 6
3 4 7
3 5 6
3 5 7
顺便附上我写的,当然是有问题的
http://www.520wife.com/1.rar(我那个最后面一列是显示当前枚举到那个值的)
在家折腾了三天了,就是搞不定,望高手帮忙解决,不胜感激!
[解决办法]
我的方案是增加两个类模块,使用自定义集合实现这个功能.
LoopItem负责枚举某项数据
LoopItems负责存储所有LoopItem,并对其进行从后往前的循环枚举.
因为集合可以方便的添加元素,所以,使用起来基本不受限制.
Form1代码
Option ExplicitPrivate mcolItems As New LoopItemsPrivate Sub Command1_Click() With mcolItems Call .Clear Dim li As ListItem For Each li In PYLv.ListItems Call .AddNew(li.Text, li.ListSubItems(1).Text) Next Do Debug.Print .ToString() Loop Until .EnumNext() End WithEnd SubPrivate Sub Form_Load()End SubPrivate Sub PyAdd_Click() With PYLv Dim a As Long a = .ListItems.Count + 1 .ListItems.Add , , TMin.Text .ListItems(a).SubItems(1) = TMax.Text End WithEnd SubPrivate Sub PYLv_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 46 Then PYLv.ListItems.Remove (PYLv.SelectedItem.Index) End IfEnd Sub