电子表格随机排考号,如果让两个相同单位的不相邻。
答案:4 悬赏:0 手机版
解决时间 2021-03-31 20:23
- 提问者网友:愿为果
- 2021-03-31 07:19
电子表格随机排考号,如果让两个相同单位的不相邻。
最佳答案
- 五星知识达人网友:千夜
- 2021-03-31 08:00
用宏。同时按Alt和F11进入宏界面,点菜单的插入,模块,粘贴如下代码:
Sub test()
Dim i, j, k, l, m As Integer
Dim iFlag As Boolean
Dim xRng As Range
Set xRng = Range("C2:C18") '请自己修改为存放单位的单元格区域,不包括表头
k = 9 '第9列(即H列)用于存放考号,请自己修改
j = xRng.Rows.Count
l = xRng.Range("A1").Row
Cells(l, k) = Int(Rnd * j) + 1
For i = 1 To j - 1
iFlag = True
Do While iFlag
Cells(l + i, k) = Int(Rnd * j) + 1
iFlag = False
For m = 0 To i - 1
If Cells(l + m, k) = Cells(l + i, k) Then
iFlag = True
GoTo Line1
End If
If Cells(l + m, xRng.Range("A1").Column) = Cells(l + i, xRng.Range("A1").Column) And (Cells(l + m, k) = IIf(Cells(l + i, k) = j, 1, Cells(l + i, k) + 1) Or Cells(l + m, k) = IIf(Cells(l + i, k) = 1, j, Cells(l + i, k) - 1)) Then
iFlag = True
GoTo Line1
End If
Next m
Line1: Loop
Next i
End Sub
粗体字自己按需修改,在此界面下直接按F5运行此宏,完成。
Sub test()
Dim i, j, k, l, m As Integer
Dim iFlag As Boolean
Dim xRng As Range
Set xRng = Range("C2:C18") '请自己修改为存放单位的单元格区域,不包括表头
k = 9 '第9列(即H列)用于存放考号,请自己修改
j = xRng.Rows.Count
l = xRng.Range("A1").Row
Cells(l, k) = Int(Rnd * j) + 1
For i = 1 To j - 1
iFlag = True
Do While iFlag
Cells(l + i, k) = Int(Rnd * j) + 1
iFlag = False
For m = 0 To i - 1
If Cells(l + m, k) = Cells(l + i, k) Then
iFlag = True
GoTo Line1
End If
If Cells(l + m, xRng.Range("A1").Column) = Cells(l + i, xRng.Range("A1").Column) And (Cells(l + m, k) = IIf(Cells(l + i, k) = j, 1, Cells(l + i, k) + 1) Or Cells(l + m, k) = IIf(Cells(l + i, k) = 1, j, Cells(l + i, k) - 1)) Then
iFlag = True
GoTo Line1
End If
Next m
Line1: Loop
Next i
End Sub
粗体字自己按需修改,在此界面下直接按F5运行此宏,完成。
全部回答
- 1楼网友:神鬼未生
- 2021-03-31 11:43
直接弄死一个,或者让一个不允许报考,很简单
- 2楼网友:鱼忧
- 2021-03-31 10:38
我这有一个软件,就是给你的!!!可以实现!!!软件不错,是一个北师大的学生编写的
- 3楼网友:上分大魔王
- 2021-03-31 09:22
先选一个学校给单号如:013220001下一个是0132200003在表格里选重这两个号向下拖曳都是单号,然后另一个学校给号013220002下一个是0132200004也是一样向下拖曳这样就都是双号,最后在合在一个表上排序不就实现相邻的两人不是来自同一单位!这样回答能否看明白!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯