如果临时过渡表桌号不为0的个数除2,余数为1,如果临时过渡表最后一行的姓名等于比赛积分表中每一轮桌号不为0,但最后一行没有对手的姓名,则临时过渡表从下向上分析,把最后一个姓名不等于比赛积分表中每一轮桌号不为0,但最后一行没有对手的姓名移到最后一行,我这样写,逐步测试已看到相同的姓名了,唯独移动行没反应。With Tables("临时过渡取数")
Dim Names As New List(Of String)
Dim zhyh As Integer
If (.rows.count - 3) Mod 2 = 1 Then
For zhcs As Integer = 1 To 4
Dim drs As List(Of DataRow) = DataTables("比赛积分").SQLSelect("[团体赛或个人赛] = '个人赛' And [棋赛名称] = '2020年迎春杯' And [分组] = '综合组' And [第几轮比赛] = " & zhcs & " And [桌号] >" & 0)
If drs.count Mod 2 = 1 Then
Names.Add(drs(drs.count - 1)("姓名"))
End If
Next
MessageBox.Show(Names.count)
For Each nm As String In Names
MessageBox.Show(nm)
Next
MessageBox.Show(.rows.count - 3 - 1)
If Names.Contains(.Rows(.rows.count - 3 - 1)("姓名")) = True Then
For zhyh = .rows.count - 3 - 2 To 0 Step - 1
If Names.Contains(.Rows(zhyh)("姓名")) = True Then
Continue For
ElseIf Names.Contains(.Rows(zhyh)("姓名")) = False Then
MessageBox.Show(.Rows(zhyh)("姓名"))
Exit For
End If
.Rows(zhyh).Move(.rows.count - 3 - 1)
Next
End If
End If
End With
[此贴子已经被作者于2022/12/5 11:40:53编辑过]