作者:乔山办公网日期:
返回目录:excel表格制作
Sub a()
Dim a1, a2, a3, a4, a5, a6, b, c
b = WorksheetFunction.CountA(Rows(1))
For a1 = 2 To 6
If WorksheetFunction.CountA(Rows(a1)) > b _
Then b = WorksheetFunction.CountA(Rows(a1))
Next
c = 2
For a1 = 2 To b
If Cells(1, a1) <> "" Then
For a2 = 2 To b
If Cells(2, a2) <> "" Then
For a3 = 2 To b
If Cells(3, a3) <> "" Then
For a4 = 2 To b
If Cells(4, a4) <> "" Then
For a5 = 2 To b
If Cells(5, a5) <> "" Then
For a6 = 2 To b
If Cells(6, a6) <> "" Then
Cells(8, c) = Cells(1, a1)
Cells(9, c) = Cells(2, a2)
Cells(10, c) = Cells(3, a3)
Cells(11, c) = Cells(4, a4)
Cells(12, c) = Cells(5, a5)
Cells(13, c) = Cells(6, a6)
c = c + 1
打开"排列组合.XLS"
2
打开"Microsoft Query"
3
选择数据源:EXCEL FILES*,不要勾选"使用查询向导" 确定
4
打开存放在电脑E:盘上的"排列组合.xls"文件,作为外部数据源
5
添加"职员$"工作表百到Query,并关闭
6
点击Query工具栏中"SQL"按钮度
7
填写如下SQL语句:
select *
from [职员$] A,[职员$] B,[职员$] C
where A.职员<B.职员 and B.职员<C.职员
order by A.职员,B.职员,C.职员
8
点击确定
9
稍微等待一下,系统会把满足条件所用排列组合显回示出来
10
最后选择Query"文件"菜单下"将数据返回到EXCEL"选项
11
弹出"导入数据"对话框,鼠标单击D1单元格,确认数据导入在D1单元格,确定,当然也可答以把结果放在新工作表中
12
因为全排列的数据量很大,有969种排列组合,把EXCEL表进行了窗口冻结操作
13
后续对结果进行处理,打印出抽签条即可
用VBA解决,ALT+F11打开VBA编辑器,插入模块,将以下代码粘贴,按F5运行,7a686964616fe58685e5aeb9331C列为“一:”的结果,D列为“二:”的结果。
Sub sort()
Dim i, j, k1, k2, k3, k4, m As Integer
Sheet1.Activate
Range("C:C").Clear
i = Range("a65535").End(xlUp).Row
j = Range("b65535").End(xlUp).Row
m = 1
For k1 = 1 To i
For k2 = 1 To j
For k3 = k2 + 1 To j
Cells(m, 3) = Cells(k1, 1) & Cells(k2, 2) & Cells(k3, 2)
m = m + 1
Next
Next
Next
Range("D:D").Clear
m = 1
For k1 = 1 To i
For k2 = 1 To j
For k3 = k2 + 1 To j
For k4 = k3 + 1 To j
Cells(m, 4) = Cells(k1, 1) & Cells(k2, 2) & Cells(k3, 2) & Cells(k4, 2)
m = m + 1
Next
Next
Next
Next
End Sub
打开"排列组合.XLS"
2
打开"Microsoft Query"
3
选择数据百源:EXCEL FILES*,不要勾选"使用查询向导" 确定
打开存放在电脑E:盘上的"排列组合.xls"文件,作为外部度数据源
添加"职员$"工作表到Query,并关闭
点击Query工具栏中"SQL"按钮
填写如下SQL语句:
select *
from [职员$] A,[职员$] B,[职员$] C
where A.职员<B.职员 and B.职员<C.职员
order by A.职员,B.职员,C.职员
点击确定
稍微等待一下,系统会把满足条件所用内排列组合显示出来
最后选择Query"文件"菜单下"将数据返回到EXCEL"选项
弹出"导入数据"对话框,鼠标单击D1单元格,确认数据导入在D1单元格,确定,当然也可以把结果放在新工作表中
因为全排列的数据量很大,有969种排列组合,把EXCEL表进行了窗口冻结操作
后续对结果进行处理,打印容出抽签条即可