我有一个表格"测试"中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
把集合和数组的具体值发上来看看
Dim Lst As New List(Of String) '设定一个班级名集合
Dim bs(p) As Integer'设定一个班级人数数组
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人
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编辑过]
很多时候编程逻辑就是头脑风暴。想到每次都只需把班级为空的行,取前面n行赋值....
已经搞定,先前搞错了一个参数。班级人数数组bs(),里应该用n-1,我用的n