Sub limonet()
Dim Cn As Object, StrSQL$, Arr(1 To 2, 1 To 6) As Variant, Rst As Object, S$, h%, i%, j%, k%, L%
Set Cn = CreateObject("Adodb.Connection")
Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
S = "试场号,编号起止,带队,试场名称,人数,负责人"
For i = 1 To 2
For j = 1 To 5 Step 2
Arr(i, j) = Split(S, ",")(k): k = k + 1
Next j
Next i
With Sheet2
For h = 2 To .Range("A65536").End(xlUp).Row
Arr(1, 2) = .Cells(h, "A"): Arr(2, 2) = .Cells(h, "B")
Arr(1, 4) = .Cells(h, "C") & "-" & .Cells(h, "D"): Arr(2, 4) = .Cells(h, "D") - .Cells(h, "C") + 1
Arr(1, 6) = .Cells(h, "F"): Arr(2, 6) = .Cells(h, "E")
If L Then
L = L + 4
Else
L = L + 1
End If
Cells(L, "G").Resize(2, 6) = Arr
StrSQL = "Select 学生姓名,考号 From [原始表$] Where 考号 Between " & Replace(Arr(1, 4), "-", " And ")
Set Rst = Cn.Execute(StrSQL)
Do Until Rst.EOF
L = L + 3
Cells(L, "G").Resize(2, 5) = Rst.GetRows(5)
Loop
Next h
End With
End Sub
|