Foxtable(狐表)用户栏目专家坐堂 → [求助]分班的问题


  共有1635人关注过本帖树形打印复制链接

主题:[求助]分班的问题

帅哥哟,离线,有人找我吗?
jjjeyes
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:305 积分:2695 威望:0 精华:0 注册:2011/10/29 16:26:00
[求助]分班的问题  发帖心情 Post By:2024/4/13 13:53:00 [只看该作者]

我有一个表格"测试"中A列为人员姓名,人数为p,如下图:

图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看
想要在B列将班级名称输入进去,班级名称放在集合lst里,每个班级的人数放在数组bs()里,数组里的所有数之和等于p。最终要得到以下的结果:

图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看
请问这个循环怎么写

Dim Lst As New List(Of String) '设定一个班级名集合
Dim p As Integer = Lst.Count '设定班级总数量的变量
Dim n As Integer = Tables("测试").Rows.Count '总人数
Dim bs(p) As Integer'设定一个班级人数数组

For g As Integer = 0 To p - 1
    MessageBox.Show ( Lst(g) & "班人数:" & bs(g))
Next

For k As Integer = 0 To n - 1
    Dim r As Row = Tables("测试").Rows(k)
    r("B") = Lst(bs(g))
Next

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/13 15:05:00 [只看该作者]

把集合和数组的具体值发上来看看

Dim Lst As New List(Of String) '设定一个班级名集合
Dim bs(p) As Integer'设定一个班级人数数组

 回到顶部
帅哥哟,离线,有人找我吗?
jjjeyes
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:305 积分:2695 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2024/4/13 15:18:00 [只看该作者]

Dim Lst As New List(Of String) '设定一个班级名集合
lst(0)的值是“班级1
lst(1)的值是“班级2
lst(2)的值是“班级3
lst(3)的值是“班级4

Dim bs(p) As Integer '设定一个班级人数数组
bs(0) = 8      是指班级1”有8人
bs(1) = 10    是指班级2”有10人
bs(2) = 7      是指班级3”有7人
bs(3) = 5      是指班级1”有5人


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/13 15:52:00 [只看该作者]

Dim t As Table = Tables("测试")
t.StopRedraw
For k As Integer = 0 To bs.length - 1
    t.filter = "B is null"
    For i As Integer = 0 To bs(k) - 1
        t.rows(i)("B") = Lst(k)
    Next
Next
t.Filter = ""
t.ResumeRedraw
[此贴子已经被作者于2024/4/13 17:15:39编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
jjjeyes
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:305 积分:2695 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2024/4/13 16:17:00 [只看该作者]

看懂了,一句t.filter = "B is null"  好销魂

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/13 16:37:00 [只看该作者]

很多时候编程逻辑就是头脑风暴。想到每次都只需把班级为空的行,取前面n行赋值....

 回到顶部
帅哥哟,离线,有人找我吗?
jjjeyes
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:305 积分:2695 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2024/4/13 16:57:00 [只看该作者]

还是不对,只能循环一次

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/4/13 17:15:00 [只看该作者]

我测试没有问题,请上传实例说明


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
jjjeyes
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:305 积分:2695 威望:0 精华:0 注册:2011/10/29 16:26:00
  发帖心情 Post By:2024/4/14 14:00:00 [只看该作者]

已经搞定,先前搞错了一个参数。班级人数数组bs(),里应该用n-1,我用的n

 回到顶部